与仅使用常规 Redis 和创建分片相比,使用 Redis Cluster 有哪些优势?
在我看来,Redis Cluster 更多的是关于数据安全(让主从架构来解决故障)。
与仅使用常规 Redis 和创建分片相比,使用 Redis Cluster 有哪些优势?
在我看来,Redis Cluster 更多的是关于数据安全(让主从架构来解决故障)。
我认为当您需要在不丢失任何数据的情况下重新分片集群时,就会出现差异。
通常使用哈希策略在多个 Redis 服务器之间均匀分片数据,Redis 3.0 集群和twemproxy 都是这样做的。当一个新的 Redis 添加到集群中并且应该由它承担一些数据负载时,你怎么知道它应该服务的任何数据还没有迁移?也许需要对整个密钥空间进行强力扫描,或者像一致性哈希这样的智能方法可以做到,但这有点复杂。
3.0集群通过引入hash slot来保证数据迁移,当你迁移出整个slot时,Redis集群保证不留下key。但恐怕这不是优势,因为它也有劣势:当插槽处于迁移状态时,它可能无法提供查询。
无论如何,这种策略被很多库和工具采用和支持,我认为这是一个优势。
与使用常规 Redis 和创建分片相比,使用 3.0 集群的最大优势之一是性能。与 twemproxy 或代码代理等相比,Redis 3.0 集群提供了更高的性能。