redis集群

  • 实验目的

1)了解什么是redis集群

  • 实验内容

1)搭建Redis集群,包含2个部分:1.Redis的主从复制集群,2.Redis哨兵集群

  • 程序设计思想(流程图,或算法思想或设计方案等)

Redis主从复制集群和哨兵集群都是Redis高可用性方案中的重要组成部分。主从复制集群利用Redis的异步复制机制,通过将一个Redis实例(主节点)的数据复制到另一个Redis实例(从节点)上,实现数据备份和容灾。当主节点出现故障时,可以通过提升从节点为主节点,继续提供服务,从而实现高可用性。哨兵集群则是基于主从复制集群的基础上,通过引入哨兵节点(Sentinel),实现主节点故障检测和自动故障切换。当主节点出现故障时,哨兵节点会自动选举一个从节点为新的主节点,从而实现无人工干预的故障转移。

四、源代码(主要源代码)

  • 测试与运行

redis集群主从复制:

在主Redis节点上的redis.conf文件中添加以下配置:

# 开启主节点

daemonize yes

# 设置密码

requirepass yourpassword

# 开启AOF持久化

appendonly yes

# 设置AOF持久化文件名

appendfilename "appendonly.aof"

# 设置AOF持久化文件保存目录

dir/var/lib/redis

接着复制并修改从节点的conf中的port为6380,6381

cp ./redis.conf  ./redis-slave1.conf

cp ./redis.conf  ./redis-slave2.conf

再分别启动3个redis

redis-server ./redis.conf

redis-server ./redis-slave1.conf

redis-server ./redis-slave2.conf

用ps -ef|grep redis查询启动是否成功

进入2个从节点并让他们认主节点:

redis-cli -h 192.168.214.130  -p 6380

SLAVEOF 192.168.214.130 6379

redis-cli -h 192.168.214.130  -p 6381

SLAVEOF 192.168.214.130 6379

redis-cli -h 192.168.214.130  -p 6379

info replication

主节点中查看状态,可以看到有俩从节点

然后主节点set值并用从节点get,发现成功

set key1 vaue1

redis-cli -h 192.168.214.130 -p 6380

192.168.214.130:6380> get key1

接着shutdonw主节点,再用从节点get,发现依然成功

从节点无法set

从节点shutdown后再启动就会脱离主节点

redis集群哨兵模式:

设置后台运行

daemonize yes

复制sentinel.conf并修改端口号

cp ./sentinel.conf ./sentinel-1.conf

cp ./sentinel.conf ./sentinel-2.conf

启动3个哨兵

查看是否启动

ps -ef|grep redis

redis-server中6379为主节点,6381和6380为从节点

进入一个哨兵控制台

redis-cli -p 26379

查看哨兵监控的主节点信息,发现监控了一个1个master和4个slaves(理论上是俩个slaves端口号分别为6380和6381,但是每个端口却有俩个ip,我也不知道怎么搞出来的)

我们通过kill – 9 5144 强制关闭主节点再启动(51144是主节点ID) ,再查看端口为6379的哨兵的info replication,发现主节点端口号6379变成6380了,这就说明主节点被关闭后哨兵投票选择了6380做主节点

如果有俩个哨兵被意外关闭了,剩下的一个哨兵依然能对redis-server监控

  • 总结

Redis主从复制集群和哨兵集群都是Redis高可用性方案的重要组成部分,可以通过异步复制和自动故障切换实现高可用性。

Redis主从复制集群可以通过设置slaveof选项实现从节点数据复制,主节点故障时可以手动将从节点提升为主节点,需要手动干预。

Redis哨兵集群则引入哨兵节点,实现主节点故障检测和自动故障切换,具备自动化故障转移的能力。

Redis主从复制集群和哨兵集群的搭建需要对Redis配置文件进行修改,其中涉及到的一些重要配置项包括:bind、port、daemonize、pidfile、logfile、dir、slaveof、sentinel monitor、sentinel auth-pass等。

在实验过程中,需要注意一些常见问题,如配置文件修改错误、端口占用、防火墙限制等。可以通过查看日志、调整配置文件、检查端口占用情况、关闭防火墙等方式解决。

实验过程中还可以通过Redis命令行工具redis-cli进行操作,例如查看节点信息、检查复制状态、进行手动故障转移等。

通过这个实验,我们了解到Redis主从复制集群和哨兵集群的基本原理和搭建方法,并学习了一些常见问题的解决方法。这对于我们在实际工作中构建高可用性的Redis集群,具有一定的参考意义。

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值