我们目前使用PhpRedis
扩展,我们的代码是使用PhpRedis
中的类Redis
编写的。但现在我们正在迁移到redis集群。
是否可以使用类Redis连接到Redis集群?还是我们需要重新编写代码并使用类RedisArray?
我们也需要有一致的哈希。我们添加了像{user}:1
这样的密钥,这样我们以后就可以进行一致的哈希处理。
主要问题是获取所有使用类Redis
编写的代码并将其更改为RedisArray
。
我是redis的新手,所以请提供一些建议
感谢
这是PHPredis Nicolas的一位作者的电子邮件回复。我感谢他花时间回复我。
你好,
首先我想澄清一下RedisArray类并没有为RedisCluster提供客户端库。它使用一致的哈希将数据分发到一组独立的Redis节点,并提供了一个通用接口,使开发人员可以避免自己编写分发层。
Phpredis目前不支持Redis集群。
回答您的问题:
- 使用RedisArray可以连接到4台redis服务器
- RedisArray提供了一致的哈希,您可以选择哪个部分的密钥将用于分发
- RedisArray类有一些限制。特别是多键命令(例如ZINTERSTORE)大多在一个节点上执行,但也有一些确实提供集成分发(例如DEL、MGET)
要了解更多关于RedisArray类的信息,请参阅GitHub上的文档。
他们现在增加了对Redis集群的支持https://github.com/phpredis/phpredis/blob/feature/redis_cluster/cluster.markdown#readme