两台机器,每台相同的 web-server+redis,每台都只读写自己机器上的 redis,两个 redis 可以怎么实现同步,有没有搞过的...

2019-09-29 09:36:51 +08:00
 aganlengzi
4970 次点击
所在节点    程序员
42 条回复
lcy630409
2019-09-29 09:43:21 +08:00
谷歌一下就出来了
https://blog.csdn.net/fuyuwei2015/article/details/70922729
先自己搜索 发现问题再问人
rootww21
2019-09-29 09:49:31 +08:00
redis 集群轻松搞定
aganlengzi
2019-09-29 09:49:41 +08:00
@lcy630409 不是只写一台,redis-A 会被写入,redis-B 也会被写入,两台被写入的内容可能不同,想做的是把写入增量想同步到另一台。
misaka19000
2019-09-29 09:51:05 +08:00
简单,写个中间层
Michaelssss
2019-09-29 09:51:16 +08:00
增量同步,首先全局自增 uid 要有,接着还要自己实现一个 redis-client。。。
winterfell30
2019-09-29 10:01:13 +08:00
搞双主的目的是写的时候低延迟?要保证强一致的话还是挺难搞的
andylsr
2019-09-29 10:05:42 +08:00
要求实时?
micean
2019-09-29 10:08:09 +08:00
做不到吧,逻辑上怎么保证 2 个 redis 写入同样的 key,以谁的为准?
aganlengzi
2019-09-29 10:14:23 +08:00
@winterfell30 想实现的是不同机器上 web-server 的本地缓存 -> 不同机器上 web-server 的共享缓存
主要是现状只有一台机器上有 web-server+redis(只是 cache,不是 buffer),想的是如果能通过 redis 相关配置实现,上层不用关心同步,加一台机器改改配置就行了... ...
貌似这是个很原始很不好的想法...
aganlengzi
2019-09-29 10:16:34 +08:00
@micean
aganlengzi
2019-09-29 10:16:47 +08:00
@andylsr
phantomzz
2019-09-29 10:17:25 +08:00
redisson 可以解决你这个问题,本质是发布订阅,注册一个监听器,自己实现监听事件的具体业务就可以了
phantomzz
2019-09-29 10:18:26 +08:00
另外集群肯定是需要的,cluster 模式还是 sentinel 模式要看你们自己架构
leviathan0992
2019-09-29 10:18:30 +08:00
@aganlengzi 逻辑上怎么保证 2 个 redis 写入同样的 key,以谁的为准? 这个你们考虑过吗?
abccccabc
2019-09-29 10:22:28 +08:00
楼主的意思是双主互相备份吗?但两台 redis 里面的 key 一样,值不一样,可就麻烦了。
aganlengzi
2019-09-29 10:26:10 +08:00
@leviathan0992 这个在现有场景问题不大,redis 只是数据库的 cache,一般不会有一致性问题,如果不一致那说明前后两个操作中间数据库有写入操作,这个以新的和旧的数据都行,旧的数据会在超时后被改写,功能上可以接受。
aganlengzi
2019-09-29 10:28:35 +08:00
@abccccabc 嗯,我们功能上这个问题可以接受,web-server 不改数据库。
zdt3476
2019-09-29 10:33:26 +08:00
没理解楼主这种需求的意义。 一个 Redis 不是照样能满足吗
aganlengzi
2019-09-29 10:43:23 +08:00
@zdt3476 嗯,可以,想的是只访问本地内存,很快,没网络延迟;然后如果 redis 能互相同步,就很爽了...
Vegetable
2019-09-29 10:52:56 +08:00
那就写两次.两个服务器分别异步向两个缓存写,读只读自己本地这个.
优势是不需要引入太大的变动,也能满足你读取本地内存这个需求.
缺点是设计看起来比较蠢,如果 handler 不支持异步任务会比较麻烦

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

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

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

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

© 2021 V2EX