keepalived+redis实现HA的验证

  • redis
  • 3月 11, 2014
  • 0 评论

之前对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
  • 7月 3, 2014
  • 92 views
redis多数据库使用防止key冲突

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

Read more

  • redis
  • 3月 17, 2014
  • 99 views
基于sentinel+redis下HA集群的搭建

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

Read more

You Missed

本地AI时代来临:Ollama + MemPalace工作流深度指南

  • u2
  • 4月 21, 2026
  • 44 views

Raycast深度解析:这个让Mac效率重装升级的东西,到底值不值?

  • u2
  • 4月 14, 2026
  • 65 views

GitHub 25K+星标!Onyx:开源可自托管的企业级AI聊天与RAG平台

  • u2
  • 4月 8, 2026
  • 170 views

InternVL-U 统一多模态模型

  • u2
  • 4月 3, 2026
  • 147 views
InternVL-U 统一多模态模型

Everything Claude Code:开源 Agent 性能优化框架

  • u2
  • 3月 31, 2026
  • 175 views

MiroFish:群体智能预测引擎,让未来在数字沙盘中预演

  • u2
  • 3月 29, 2026
  • 251 views