Redis 主从平滑切换

2015-07-16 00:49:43 +08:00
 zhengji

业务原来所在的Redis需要做迁移,感谢Redis,主从切换不算太复杂。 为了可以更好地阐述过程,我们定义了:

A 服务器,原来拥有 redis 数据库的机器
B 服务器,未来取代 A 服务器的 redis 数据库服务器

主从同步主要操作有2步:

把 B 服务器的 redis 配置更改为:
slaveof IP地址 端口
这样就开始同步了,并且只读了。

接下来准备把 B 服务器提升为 master,
redis-in-b-host> slaveof no one
B服务器就断掉主从同步,提升为主,并行可读写

Blog: http://zheng-ji.info/blog/2014/10/04/redisre-bei/

4443 次点击
所在节点    Redis
4 条回复
CarlWangCn
2015-07-16 08:57:03 +08:00
用sentinel试试, 更方便
soli
2015-07-16 09:31:41 +08:00
如果切换主呢?

比如,

A1
/ \
B1 B2

要想把 A1 换成 A2 呢? A1 和 A2 的内容基本是一样的。

怎么做能平滑一些?
zhengji
2015-07-16 10:33:11 +08:00
@CarlWangCn 好的,谢谢
cheng007
2015-07-16 13:04:02 +08:00
没有做主从,只做了写日志备份
日志:
{"cmd":"hincrby","args":["player:uid:1000018","it:201",5000]}
{"cmd":"hset","args":["player:uid:1000004","nickname","iPhone 5saaaa"]}
{"cmd":"hset","args":["player:uid:1000004","sex",1]}
{"cmd":"hset","args":["player:uid:1000018","title",101]}
{"args":["player:uid:1000018","title",202],"cmd":"hset"}
{"args":["player:uid:1000018","it:201",300000],"cmd":"hincrby"}
{"args":["player:uid:1000018","js:ach","[{\"d\":true,\"i\":101,\"p\":0},{\"d\":true,\"i\":201,\"p\":6},{\"d\":true,\"i\":202,\"p\":26},{\"d\":false,\"i\":203,\"p\":57}]"],"cmd":"hset"}
{"cmd":"hset","args":["player:uid:1000018","js:ach","[{\"i\":101,\"d\":true,\"p\":0},{\"i\":201,\"d\":true,\"p\":6},{\"i\":202,\"d\":true,\"p\":26},{\"i\":203,\"d\":true,\"p\":57}]"]}
{"cmd":"hincrby","args":["player:uid:1000018","it:201",25000]}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/205986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX