На моей машине DEV я использую класс Redis, который отлично работает. На моем LIVE-сервере я использую классы RedisArray и/или RedisCluster.

Из документов RedisArray:

Массивы Redis можно использовать так же, как объекты Redis.

Из документов RedisCluster:

Для большинства операций класс RedisCluster может выступать в качестве замены класса Redis без необходимости изменять способ его вызова.

Недавно я заметил потерю данных на моем LIVE-сервере. Я имею в виду, что при использовании RedisArray или RedisCluster иногда пропадают некоторые данные. Это нормальное поведение для RedisArray/RedisCluster? Есть ли способ предотвратить потерю данных?

0
Salim Ibrohimi 19 Апр 2020 в 16:20

1 ответ

Согласно очень похожему вопросу в системе отслеживания ошибок репозитория PhpRedis на GitHub:

когда вы используете Redis, так как кэширование и сохранение отключены, вы должны использовать сегментирование (RedisArray), чтобы избежать проблем с высоким трафиком между бэкэндами и Redis.

Кроме того, есть электронное письмо одного из авторов PhpRedis, реплицированное в еще один вопрос здесь, в SO. Обратите внимание, что вопросу почти 7 лет, но ответ был отредактирован 5 лет назад.

Похоже, что RedisArray поддерживает сегментацию ключей на стороне клиента (представленную до официальной поддержки Redis Cluster), а RedisCluster использует официальный Функция кластера Redis.

2
Dinei 20 Апр 2020 в 16:36