redis - Predis 分片(一致性哈希)

标签 redis sharding predis

Predis 声称拥有客户端分片(支持键的一致性散列)。 http://github.com/nrk/predis

我可以使用连接到一组配置文件(节点)来进行分片,但它不是一致的哈希。当我将另一个节点添加到池中时,找不到某些 key 。任何人都有这方面的经验吗?

使用 php 5.2(和 redis 的 php 5.2 版本)。

最佳答案

Redis 官方网站说“Redis 通过一致性哈希支持客户端分片。目前不支持容错,也不支持在运行时添加或删除集群。”

据我目前的了解,这种共享是不可容错的,存储在故障节点上的所有 key 都将丢失。同样,如果您添加一个新节点,部分 key 空间现在将丢失(因为 key 将存储在错误的节点上)。通常在一致的哈希系统中,当一个新节点加入时,它会复制所有现在从其邻居映射到它的键。 Redis 服务器不支持执行此操作。

因此,如果您将 Redis 用作缓存,那么一致性哈希工作正常,实际数据存储在 Redis 后面,但目前不要指望您的数据不会丢失。

更新:可以通过名为 ketama 的一致性哈希库实现真正的分片。 .

关于redis - Predis 分片(一致性哈希),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2139620/

相关文章:

php - 连接拒绝重做

php - 如何让 Laravel 与 AWS 上的 Redis 集群一起工作

windows - 2019 年 Redis 在 Windows 上的状态?

amazon-ec2 - Redis 服务器报告 Reading from client : Connection reset on amazon ec2 c1. medium instance

mongodb - 复合分片键如何读取数据

python - Mongodb:在我的 python 代码中对集合进行分片

amazon-dynamodb - 从 Spark Streaming 中超过 1 个分片的 Kinesis 流中读取

redis - 是否可以在 MSOpenTech Redis 发行版上启用 SSL

amazon-web-services - 是否可以删除 AWS ElastiCache redis 集群上的所有键?

php - Redis 发布和订阅不适用于动态 key