这次彻底读透 Redis !( 九 )


文章插图
 
6380:

这次彻底读透 Redis !

文章插图
 
6381:
这次彻底读透 Redis !

文章插图
 
从图中可用看出,数据已经成功同步了
哨兵模式
哨兵集群是在主从复制的基础上构建的,相当于是主从+哨兵
搭建哨兵模式分为两步:
 
  1. 搭建主从复制集群
  2. 添加哨兵配置
 
哨兵模式节点信息如下,一主二从,三个哨兵组成一个哨兵集群
节点配置端口masterredis6379.conf6379slave1redis6380.conf6380slave2redis6381.conf6381sentinel1sentinel1.conf26379sentinel2sentinel2.conf26380sentinel3sentinel3.conf26381
主从复制集群的配置同上,这里就不再赘述,下面主要介绍下哨兵的配置,哨兵的配置文件其实非常简单
# 文件内容 # sentinel1.conf port 26379 sentinel monitor mymaster 127.0.0.1 6379 1 # sentinel2.conf port 26380 sentinel monitor mymaster 127.0.0.1 6379 1 # sentinel3.conf port 26381 sentinel monitor mymaster 127.0.0.1 6379 1
【这次彻底读透 Redis !】配置文件创建好了以后就可以启动了,首先启动主从服务器,然后启动哨兵
../bin/redis-server redis6379.conf ../bin/redis-server redis6380.conf ../bin/redis-server redis6381.conf -- 启动哨兵 ../bin/redis-sentinel sentinel1.conf ../bin/redis-sentinel sentinel2.conf ../bin/redis-sentinel sentinel3.conf
这次彻底读透 Redis !

文章插图
 
从哨兵的启动日志中我们可用看到主从服务器的信息,以及其他哨兵节点的信息
故障转移
主从同步功能上面已经演示过了,这里主要测试一下哨兵的故障转移
现在我手动将主节点停掉,在 6379 上执行 shutdown 命令
此时我们观察一下哨兵的页面:
这次彻底读透 Redis !

文章插图
 
哨兵检测到了 6379 下线,然后选举出了新的主库 6380
此时我们通过 info replication 命令查看集群信息,发现 6380 已经是主库了,他有一个从节点 6381
这次彻底读透 Redis !

文章插图
 
现在我手动将 6379 启动,看下 6379 会不会重新变成主库
这次彻底读透 Redis !

文章插图
 
重新启动后,我们发现 6379 变成了 80 的从库
Cluser 集群
官方推荐,Cluser 集群至少要部署 3 台以上的 master 节点,最好使用 3 主 3 从
节点配置端口cluster-master1redis7001.conf7001cluster-master2redis7002.conf7002cluster-master3redis7003.conf7003cluster-slave1redis7004.conf7004cluster-slave2redis7006.conf7005cluster-slave3redis7006.conf7006
配置文件内容如下,6 个配置文件信息基本相同,编辑好一份后其他文件直接复制修改端口即可
# 端口 port 7001 # 启用集群模式 cluster-enabled yes # 根据你启用的节点来命名,最好和端口保持一致,这个是用来保存其他节点的名称,状态等信息的 cluster-config-file nodes_7001.conf # 超时时间 cluster-node-timeout 5000 appendonly yes # 后台运行 daemonize yes # 非保护模式 protected-mode no pidfile redis_7001.pid
然后分别启动 6 个节点
../bin/redis-server redis7001.conf ../bin/redis-server redis7002.conf ../bin/redis-server redis7003.conf ../bin/redis-server redis7004.conf ../bin/redis-server redis7005.conf ../bin/redis-server redis7006.conf
启动集群
# 执行命令 # --cluster-replicas 1 命令的意思是创建master的时候同时创建一个slave $ redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
启动过程有个地方需要输入 yes 确认:


推荐阅读