keepalived+redis实现HA的验证

之前对Redis的使用还是中规中矩的Master+Slave,没有做到故障的自动切换,根据hey linux提供的redis HA方案,使用keepalived+redis很容易搭建起来了高可用的redis集群,具体的搭建过程可以参考原始连接,本主重点是对高可用redis的验证。

测试节点:
Master: 172.16.31.101
Slave: 172.16.31.102
VIP: 172.16.31.100

究竟Keepalived+redis的配置是否真的可靠,是Master+slave还是Master+Master呢?
下面开始测试:
Master+slave配置下,客户端通过VIP连接redis,当Master 停掉以后,VIP切换到Slave上,但是测试中发现仍然可以向VIP(Slave)写数据(这点有些令人疑惑,因为配置里面是“slave-read-only yes”),这跟实际想像的不太一样,另外就是即使可以写了,那么能够同步回Master呢?

切换过程中抓取了replication的几个状态(取redis INFO数据):

(一)正常状态,此时redis可写,set/get数据正常:

# Replication
role:master
connected_slaves:1
slave0:172.16.31.102,6379,online

$ redis-cli -h 172.16.31.100 -p 6379 SET foo bar
OK

(二)Master down(停掉Master)之后的状态,原来的Salve变成了Master,状态显示已经没有了Slave。

# Replication
role:master
connected_slaves:0

$ redis-cli -h 172.16.31.100 -p 6379 SET sitename sudops.com
OK

(三)Master恢复(重新启动)后:
状态发生了两次变化:
(a)从Slave同步数据到原来的Master上,能够看到原master的状态为up, 以及落后Slave的时间为4s(此时Slave不能写)

redis-cli -h 172.16.31.100 -p 6379 SET sitename sudops.com
(error) READONLY You can't write against a read only slave.

# Replication
role:slave
master_host:172.16.31.102
master_port:6379
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_priority:100
slave_read_only:1
connected_slaves:0

(b)同步之后恢复到正常状态,有一个Slave, get之前set的数据没有问题。

# Replication
role:master
connected_slaves:1
slave0:172.16.31.102,6379,online

$ redis-cli -h 172.16.31.100 -p 6379 GET sitename
"sudops.com"

看来即便是Master+Slave的redis配置下与Keepalived配合起来数据还是互相同步的,一致性也尚可。

u2

Related Posts

redis多数据库使用防止key冲突

【摘要】实际应用中会有多个项目都要使用redis,如果每一个…

基于sentinel+redis下HA集群的搭建

[摘要]之前的文章中介绍了redis+keepalived来…

You Missed

雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

  • u2
  • 3月 1, 2026
  • 30 views
雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

  • u2
  • 2月 25, 2026
  • 123 views
OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

Anthropic 推出 Claude Code Security:AI 驱动的代码安全神器

  • u2
  • 2月 24, 2026
  • 71 views

来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

  • u2
  • 10月 16, 2025
  • 47 views
来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

技术宅如何躲开越来越垃圾的CSDN?

  • u2
  • 4月 11, 2024
  • 33 views
技术宅如何躲开越来越垃圾的CSDN?

mysql连接失败:The driver has not received any packets from the server

  • u2
  • 3月 26, 2024
  • 35 views
mysql连接失败:The driver has not received any packets from the server