Redis 支持主从复制,哪我应该怎样实现双主复制呢?

2019-04-09 11:53:49 +08:00
 chinazz
具体场景是 A B 两个 Redis 服务,可以实时的同步两个服务的信息。
15580 次点击
所在节点    Redis
27 条回复
j2gg0s
2019-04-09 12:40:56 +08:00
基本没有好的实现思路。存储还是缓存?如果是存储且需要双主能不能用 MySQL,然后 redis 做缓存?如果是缓存,需要双主?
chinazz
2019-04-09 12:45:03 +08:00
@j2gg0s 是用来做存储的,国内国外两个服务,做一下同步
lhx2008
2019-04-09 12:50:07 +08:00
双主冲突问题比较复杂吧,可以对不同地区的用户,直接分成两部分。实在需要同步的数据,还是挂主从同步。
dengtongcai
2019-04-09 12:56:06 +08:00
codis 或者自带的无中心直连集群理论可行吗,生产没用过
halk
2019-04-09 12:57:37 +08:00
见过大厂的自定义实现,
不知道 LZ 这样做的目的是什么?
cholerae
2019-04-09 13:21:03 +08:00
冲突咋处理,不用处理的话直接同步日志得了
chinazz
2019-04-09 14:03:22 +08:00
@halk 主要是解决跨区问题,中国地区写入的时候直接写入 A 服务,国外地区直接写入 B 服务。( A、B 服务是实时同步的,保持数据一致)有什么相关的链接或者博文吗?没有找到合适的解决方法。
ech0x
2019-04-09 14:04:32 +08:00
这个问题信息太少了,CAP 理论了解一下。
一致性、可用性、分区容错性 看你怎么权衡了。
chinazz
2019-04-09 14:04:59 +08:00
@cholerae 需要实时的同步两个服务,没有找的特别合适的方法
9hills
2019-04-09 14:11:27 +08:00
如果要实现跨州实时强一致低延迟写入,理论上是不可能的。

同时在 a 地域和 b 地域对 key 赋值,怎么解决冲突的问题?

必须要放弃什么东西,你可以放弃低延迟,只有 AB 同时 ack 才算写入成功。你也可以放弃强一致,改成基于原子钟的时序归并,达到最终一致。
boyhailong
2019-04-09 15:20:26 +08:00
为什么要这么做成两个双主这么麻烦 主从不就行了?
没有背景的提问没任何意义
halk
2019-04-09 16:03:07 +08:00
@chinazz 参考下这里,不知道是不是和你的需求一致
https://redislabs.com/wp-content/uploads/2017/02/04-Yossi-Gottlieb-Redis-Labs.pdf
Linken404
2019-04-09 16:12:22 +08:00
目前看是没有吧...
除非能换 mysql,比如想办法把 AB 两区域的 redis 数据汇集到一个 mysql 里?
最好还是能变通一下,不要强行给自己挖坑啊...
j2gg0s
2019-04-09 16:27:24 +08:00
@chinazz MySQL 的异地多主有成熟可靠的方案,redis 当前没有,估计以后也不会有,RDB,AOF 和 Binlog 的特性差的还是比较原的;
建议:1 数据源换成 MySQL,MySQL 多主,redis 做缓存 2 双主之间没有严重数据冲突的话,可以搞个 kafka 跨机房同步,但是估计这个以后会坑自己
leviathan0992
2019-04-09 16:31:33 +08:00
@chinazz 双主的架构是为了双写吗? 还是处于别的什么原因
misaka19000
2019-04-09 16:43:25 +08:00
双主一致性太难保证了吧
chinazz
2019-04-09 16:57:32 +08:00
@leviathan0992 双主架构是为了异地双写。
chinazz
2019-04-09 16:58:43 +08:00
@misaka19000 所以想找一下有没有相关的案例之类的
leviathan0992
2019-04-09 16:59:04 +08:00
@chinazz 操作同一个 key 必须要求保证一致性吗?
chinazz
2019-04-09 17:06:34 +08:00
@leviathan0992 对,数据必须保持一致性

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

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

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

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

© 2021 V2EX