那个..关于 redis 集群可用性的一个问题...

2018-07-19 13:52:13 +08:00
 scmod

我看介绍说主从的方式,每份数据都只在一对主从上, 这样的话不是就算上百台只要其中随便一对主从挂掉这个集群就没用了? 比如我可能类似一段数据从前天到今天,前天正好在第一对的哈希槽里,昨天在第二对上今天在第三对上,随便一对坏了我就没办法拿到完整数据了?

2787 次点击
所在节点    程序员
7 条回复
slowargo
2018-07-19 15:15:53 +08:00
1 挂掉一对就损失那一对上面的数据,不影响其他节点上的数据
2 redis 是 cache,不要假定它是一个可靠存储,业务上需要考虑 cache 可能失效。
petelin
2018-07-19 17:47:50 +08:00
每一个槽都要备份的呀
mikeguan
2018-07-19 17:51:07 +08:00
Redis 集群一对主从挂了 集群就挂了 你集群有几百台机器 一对主从也不会只有 2/3 台机器 全部坏掉的可能性很小
xiapuxiaohei
2018-07-19 19:23:22 +08:00
貌似 lz 这个情况的确会丢数据,但是集群倒是不会挂掉。
kkeybbs
2018-07-19 19:32:19 +08:00
一主多从,主从不在同一节点上,数据会丢的更少
nl101531
2018-07-19 19:38:53 +08:00
主从同时挂几率挺小,即使挂了丢失的是这段分片上的数据,一般也不会产生全站影响。
scmod
2018-07-20 10:36:32 +08:00
@slowargo 哦..原来定位是缓存吗,那就是要保证数据实际上真正落盘的话还是要有其他数据库支持?
貌似现在大概知道了就是数据确实会丢,然后如果这些数据正好是一个表的一部分的话我对那个表的 select * 类似这样的就会因为少这一部分不能用了

@mikeguan 貌似 4 楼说的和您说的有冲突呀~如果一对主从不止两三台确实会好很多,但是实际上如果像我说的那种情况,正好数据都被分配到每一对主从上,然后少任何一对的那部分数据都会导致查不出所有数据的话,不管集群有多少对,可靠性只跟某一对主从的可靠性一样了.

刚才又翻了遍官网介绍 https://redis.io/topics/partitioning,感觉好像集群之后什么事情都麻烦了不少,select by id 这种好像还好,但是很多对整表的操作都被限制了
谢谢楼上各位~

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

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

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

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

© 2021 V2EX