Ключи поведение команды в Redis против кластера Redis на AWS

вроде новичок на Redis ...

Я заметил странное поведение в Redis ... Когда я запускаю Redis локально и использую команду 'keys *' - я получаю \ вижу все ключи в системе - это нормально и согласно документации.

Когда я запускаю redis в режиме Elasticache \ cluster на aws и с помощью команды «keys *» - я получаю только «1)« ElastiCacheMasterReplicationTimestamp »на всех 3 серверах redds. Я пробовал другие команды, чтобы найти недостающую информацию, но безрезультатно. Наше приложение \ сервер работает нормально, значит, что-то работает правильно, но что и где? Я прочитал документацию, но ничего не нашел по этому поводу.

Кто-нибудь может объяснить? Большое спасибо.


person Busted    schedule 04.09.2016    source источник


Ответы (2)


Redis Cluster НЕ поддерживает команду KEYS. Вы можете отправить команду KEYS только одному экземпляру Redis.

НЕ рекомендуется использовать команду KEYS в производственной среде, особенно когда у вас слишком много ключей в Redis (она будет блокировать Redis на долгое время).

Если вы настаиваете на получении всех ключей в кластере Redis, вам придется реализовать это самостоятельно, и есть пример

person for_stack    schedule 05.09.2016
comment
Спасибо за ссылку и за объяснения. это было полезно. Ваше здоровье! - person Busted; 05.09.2016
comment
ElasticCache - это не режим кластера Redis. Это сервис, совместимый с Redis, предлагаемый Amazon. Тот факт, что ключи возвращаются, говорит о том, что он поддерживается ElasticCache, но да, запускать производство ключей j - ужасная идея. - person The Real Bill; 05.09.2016
comment
@TheRealBill Спасибо, что указали на это! Я не знаком с ElasticCache. Я думал, что он отказывается от команды KEYS для кластерного режима и возвращает некоторую индивидуальную информацию. - person for_stack; 05.09.2016

Я бы рекомендовал подтвердить конфигурацию приложения, чтобы убедиться, что оно указывает на настройку ElasticCache. Кластер Redis и ElasticCache - разные вещи. Таким образом, не имеет значения, поддерживает ли он команду keys. Если ElasticCache не поддерживает команду keys, как сервер, совместимый с Redis, он вернет ошибку, а не неполный список ключей.

Если для ваших ключей установлен срок действия, возможно, вы их не видели, потому что в этот момент они истекли. Но также возможно, что это говорит с другим сервером или даже просто проглатывает ошибки. У нас нет возможности воспользоваться этим.

Однако вы можете использовать команду info и ее подкоманды, такие как info commandstats, чтобы убедиться, что команды действительно выполняются на ней. Если вы не видите перечисленных команд, которые использует ваше приложение, ваше приложение с ним не обращается.

person The Real Bill    schedule 05.09.2016