Миграция phpRedis в кластер и последовательное хеширование

В настоящее время мы используем расширение PhpRedis, и наш код написан с использованием класса Redis из библиотеки PhpRedis. Но теперь мы переходим на кластер Redis.

Можно ли использовать класс Redis для подключения к кластеру Redis? или нам нужно переписать наш код и использовать класс RedisArray?

Нам также понадобится последовательное хеширование. Мы добавили такие ключи, как этот {user}:1, чтобы позже мы могли выполнять согласованное хэширование.

Основная проблема заключается в том, чтобы взять весь код, написанный с использованием класса Redis, и изменить его на RedisArray.

Я новичок в Redis, поэтому, пожалуйста, дайте несколько советов.

Спасибо


person Jya    schedule 06.12.2013    source источник


Ответы (1)


Это ответ по электронной почте от одного из авторов PHPredis Николаса. Я благодарю его за то, что он нашел время ответить мне.

Hi,

Я просто хочу начать с пояснения, что класс RedisArray не предоставляет клиентскую библиотеку для Redis Cluster. Он использует последовательное хеширование для распределения данных по набору независимых узлов Redis и предоставляет общий интерфейс, чтобы разработчики могли избежать необходимости самостоятельно писать уровень распространения.

В настоящее время Phpredis не поддерживает Redis Cluster.

Обращение к вашим вопросам:

  • С помощью RedisArray можно подключиться к 4 серверам Redis.
  • RedisArray обеспечивает согласованное хеширование, и вы можете выбрать, какая часть ключа будет использоваться для распределения.
  • Класс RedisArray имеет несколько ограничений. В частности, многоклавишные команды (например, ZINTERSTORE) чаще всего выполняются на одном узле, но некоторые предлагают интегрированное распределение (например, DEL, MGET).

Чтобы узнать больше о классе RedisArray, см. документацию на GitHub. .

Теперь добавлена ​​поддержка кластера Redis https://github.com/phpredis/phpredis/blob/feature/redis_cluster/cluster.markdown#readme

person Jya    schedule 12.12.2013