2025年redis-cli连接集群(redis-cli连接集群命令)

redis-cli连接集群(redis-cli连接集群命令)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>一个小型项目使用一台 Redis 服务器已经非常足够了&#xff0c;然而现实中的项目通常需要若干台Redis服务器的支持&#xff1a;</p> 

讯享网
  • 从结构上,单个 Redis服务器会发生单点故障,同时一台服务器需要承受所有的请求负载。这就需要为数据生成多个副本并分配在不同的服务器上;
  • 从容量上,单个 Redis服务器的内存非常容易成为存储瓶颈,所以需要进行数据分片。

1.1 概述

Redis 集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点。

Redis 集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是一个redis实例。

Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。

1.2 部署单机伪集群

Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。

没有那么多服务器与虚拟机时,搭建伪分布式集群,即一台服务器虚拟运行6个redis实例,修改端口号为(7001-7006)

当然,部署在多台机器上操作是一致的。

👉 第一步:创建六个Redis实例

讯享网

👉 第二步:创建集群

创建Redis集群的方式有两种:redis-cli方式、redis-trib.rb工具

  • redis-cli 方式(推荐):
 

[WARNING] Some slaves are in the same host as their master –&gt; 主从同一个机器,因为部署的伪集群在同一机器上,不必管

Can I set the above configuration? (type ‘yes’ to accept) –&gt; 提示你是否接受上述的配置,填入yes

此时节点已经添加,并且槽位已经分配好了,集群也处于可用的状态,查看集群状态:

讯享网
  • redis-trib.rb工具

Ruby工具安装:https://blog.csdn.net/weixin_/article/details/?spm=1001.2014.3001.5501

redis-trib.rb脚本下载:https://blog.csdn.net/weixin_/article/details/?spm=1001.2014.3001.5502


讯享网

 

2.1 概述

通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此,Redis提供了复制(replication)功能,可以实现当一台数据库中的数据更新后,自动将更新的数据同步到其他数据库上。

Redis主从同步策略:主从数据库刚刚连接的时候,采用全量同步来初始化slave节点。salve正常工作时,采用增量同步来将主服务器发生的写操作同步到从服务器。无论如何,redis首先会尝试进行增量同步,如不成功,要求从数据库进行全量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。

全量同步:当一个从数据库启动后,会向主数据库发送SYNC命令。主数据库接收到SYNC命令后会开始在后台保存快照(即RDB持久化的过程),并将保存快照期间接收到的命令缓存起来。当快照完成后,Redis会将快照文件和所有缓存的命令发送给从数据库。从数据库收到后,会载入快照文件并执行收到的缓存的命令。

增量复制:从数据库发送 PSYNC命令,格式为。主数据库收到PSYNC命令后,首先会判断从数据库传送来的运行ID是否和自己的运行ID相同(确保从数据库之前确实是和自己同步的,以免从数据库拿到错误的数据),然后判断从数据库最后同步成功的命令偏移量是否在积压队列中。两个条件都满足的话就可以执行增量复制,并将积压队列中相应的命令发送给从数据库。如果此次重连不满足增量复制的条件,主数据库会进行一次全量同步。

2.2 部署配置

主数据库不需要配置,从数据库的配置文件(redis.conf)中加入 即可

2.3 未完-待补充

  • 数据库分类、图结构
  • 乐观复制
  • 读写分离一致性
  • 从数据库持久化
  • 无硬盘复制
  • 缺点

3.1 概述

哨兵的作用是监控Redis系统的运行状态,在主数据库故障时自动将从数据库转换为主数据库。

工作机制:

  • 每个sentinel 以每秒钟一次的频率向它所知的master,slave 以及其他sentinel 实例发送一个 PING 命令,如果一个实例距离最后一次有效回复 PING 命令的时间超过 选项所指定的值, 则这个实例会被sentinel标记为主观下线。
  • 如果一个master被标记为主观下线,则正在监视这个master的所有sentinel 要以每秒一次的频率确认master的确进入了主观下线状态,当有足够数量的sentinel(大于等于配置文件指定的值)在指定的时间范围内确认master的确进入了主观下线状态, 则master会被标记为客观下线
  • 当master被sentinel标记为客观下线时,sentinel向下线的master的所有slave发送 INFO 命令的频率会从 10 秒一次改为 1 秒一次
    若没有足够数量的sentinel同意master已经下线,master的客观下线状态就会被移除;若master重新向sentinel的 PING 命令返回有效回复,master的主观下线状态就会被移除

使用sentinel模式的时候,客户端就不要直接连接Redis,而是连接sentinel的ip和port,由sentinel来提供具体的可提供服务的Redis实现,这样当master节点挂掉以后,sentinel就会感知并将新的master节点提供给使用者。

3.2 部署配置

创建一个哨兵配置文件sentinel.conf,内容:

讯享网

执行Sentinel进程:

 

配置哨兵监控一个系统时,只需要配置其监控主数据库即可,哨兵会自动发现所有复制该数据库的从数据库

3.3 未完、待补充

  • 监控提醒
  • 投票选举
  • 自动故障迁移
  • 事件
  • 特点
  • 缺点

小讯
上一篇 2025-04-24 22:44
下一篇 2025-05-23 19:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/195700.html