Predis声称拥有客户端分片(支持一致的散列哈希).http://github.com/nrk/predis
我可以使用连接到一个配置文件(节点)数组进行分片,但它不是一致的散列.当我向池中添加另一个节点时,无法找到某些键.有人有这方面的经验吗?
使用php 5.2(和redis的php 5.2版本).
官方Redis网站称"Redis通过一致性散列支持客户端分片.目前不支持容错,也不支持在运行时添加或删除集群."
据我所知,目前这种共享不是容错的,存储在故障节点上的所有密钥都将丢失.同样,如果添加新节点,密钥空间的某些部分现在将丢失(因为密钥将存储在错误的节点上).通常在一致的哈希系统中,当新节点加入时,它会复制现在从其邻居映射到它的所有键.Redis服务器不支持执行此操作.
因此,如果您使用Redis作为缓存,一致的哈希工作正常,其中实际数据存储在Redis后面,但目前不要指望您的数据不会丢失.
更新:可以通过名为ketama的一致哈希库实现真正的分片.