我看介绍说主从的方式,每份数据都只在一对主从上, 这样的话不是就算上百台只要其中随便一对主从挂掉这个集群就没用了? 比如我可能类似一段数据从前天到今天,前天正好在第一对的哈希槽里,昨天在第二对上今天在第三对上,随便一对坏了我就没办法拿到完整数据了?
1
slowargo 2018-07-19 15:15:53 +08:00
1 挂掉一对就损失那一对上面的数据,不影响其他节点上的数据
2 redis 是 cache,不要假定它是一个可靠存储,业务上需要考虑 cache 可能失效。 |
2
petelin 2018-07-19 17:47:50 +08:00
每一个槽都要备份的呀
|
3
mikeguan 2018-07-19 17:51:07 +08:00 via Android
Redis 集群一对主从挂了 集群就挂了 你集群有几百台机器 一对主从也不会只有 2/3 台机器 全部坏掉的可能性很小
|
4
xiapuxiaohei 2018-07-19 19:23:22 +08:00
貌似 lz 这个情况的确会丢数据,但是集群倒是不会挂掉。
|
5
kkeybbs 2018-07-19 19:32:19 +08:00 via iPhone
一主多从,主从不在同一节点上,数据会丢的更少
|
6
nl101531 2018-07-19 19:38:53 +08:00 via Android
主从同时挂几率挺小,即使挂了丢失的是这段分片上的数据,一般也不会产生全站影响。
|
7
scmod OP @slowargo 哦..原来定位是缓存吗,那就是要保证数据实际上真正落盘的话还是要有其他数据库支持?
貌似现在大概知道了就是数据确实会丢,然后如果这些数据正好是一个表的一部分的话我对那个表的 select * 类似这样的就会因为少这一部分不能用了 @mikeguan 貌似 4 楼说的和您说的有冲突呀~如果一对主从不止两三台确实会好很多,但是实际上如果像我说的那种情况,正好数据都被分配到每一对主从上,然后少任何一对的那部分数据都会导致查不出所有数据的话,不管集群有多少对,可靠性只跟某一对主从的可靠性一样了. 刚才又翻了遍官网介绍 https://redis.io/topics/partitioning,感觉好像集群之后什么事情都麻烦了不少,select by id 这种好像还好,但是很多对整表的操作都被限制了 谢谢楼上各位~ |