我们当前正在使用PhpRedis扩展名,并且我们的代码是使用Redis中的PhpRedis类编写的。但是现在我们正在迁移到Redis集群。

是否可以使用Class Redis连接到Redis集群?还是我们需要重新编写代码并使用Class RedisArray?

我们还需要具有一致的哈希值。我们添加了像{user}:1这样的键,以便稍后可以进行一致的哈希处理。

主要问题是将使用Redis类编写的所有代码都转换为RedisArray

我是Redis的新手,请提供一些建议

谢谢

最佳答案

这是PHPredis Nicolas的作者之一的电子邮件回复。我感谢他抽出宝贵的时间回复我。

你好

我只想从澄清RedisArray类不提供Redis Cluster的客户端库开始。它使用一致的哈希将数据分发到一组独立的Redis节点,并提供了一个公共(public)接口(interface),因此开发人员可以避免必须自己编写分发层。

Phpredis当前不支持Redis群集。

解决您的问题:

  • 可以通过RedisArray连接到4个Redis服务器。
  • RedisArray提供一致的哈希,您可以选择哪一部分
    的密钥将用于分发。
  • RedisArray类有一些limitations。特别是多键
    命令(例如ZINTERSTORE)通常在一个节点上执行,但是有些
    确实提供了集成分发(例如DEL,MGET)。

  • 要了解有关RedisArray类的更多信息,请引用documentation on GitHub

    他们现在增加了对Redis集群的支持
    https://github.com/phpredis/phpredis/blob/feature/redis_cluster/cluster.markdown#readme

    关于php - phpRedis迁移到群集和一致的哈希,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20416781/

    10-09 20:11