Существует ли команда Redis для получения всех ключей в базе данных? Я видел, как некоторые библиотеки Python-Redis их извлекали. Но было интересно, если это возможно от Redis-клиента.
redis
redis-cli
redis-commands
Лалитх
источник
источник
redis-cli keys "*"
KEYS
при запросе большого набора данных возможно более длительное время блокирование сервераОбновлено для Redis 2.8 и выше
Как отмечено в комментариях к предыдущим ответам на этот вопрос,
KEYS
это потенциально опасная команда, поскольку ваш сервер Redis будет недоступен для выполнения других операций, пока он его обслуживает. Другой рискKEYS
заключается в том, что он может потреблять (в зависимости от размера вашего пространства ключей) много оперативной памяти для подготовки буфера ответов, что может привести к исчерпанию памяти вашего сервера.Версия 2.8 Redis представила семейство команд SCAN , которые намного более вежливы и могут использоваться для той же цели.
CLI также предоставляет хороший способ работы с ним:
источник
Может случиться так, что используя redis-cli, вы подключитесь к удаленному redis-серверу, а затем выполните команду:
ничего не показывает, или лучше, он показывает:
(empty list or set)
Если вы абсолютно уверены, что сервер Redis, который вы используете, является тем, у которого есть данные, то, возможно, ваш redis-cli не подключается к правильному экземпляру базы данных Redis.
Как упоминается в Redis docs, новые соединения по умолчанию подключаются к базе данных 0 .
В моем случае
KEYS
команда не получала результаты, потому что моя база данных была 1. Чтобы выбрать нужную БД, используйте SELECT .БД обозначается целым числом.
Я публикую эту информацию, потому что ни один из предыдущих ответов не решил мою проблему.
источник
-> Получить все ключи от Redis-Cli
-> Получить список шаблонов
Это произведет ключи, которые начинаются с 'd' с тремя символами.
Это позволит получить ключи с символами «т» в ключе
-> Подсчет ключей из командной строки по
-> Или вы можете использовать
dbsize
источник
key *t*
вkeys *t*
.Взгляните на следующий Redis Cheat Sheet . Чтобы получить подмножество ключей redis с помощью redis-cli, я использую команду
источник
Да, вы можете получить все ключи с помощью этого
источник
SCAN не требует от клиента загрузки всех ключей в память, как это делает KEYS. SCAN дает вам итератор, который вы можете использовать. У меня были записи 1B в моем Redis, и я никогда не мог получить достаточно памяти, чтобы вернуть все ключи одновременно.
Вот фрагмент кода Python, чтобы получить все ключи из магазина, соответствующие шаблону, и удалить их:
источник
где * - шаблон для отображения всех ключей
источник
redis-cli -h <host> -p <port> keys '*'
KEYS шаблон
Возвращает все ключи, соответствующие шаблону.
Предупреждение. Эту команду не рекомендуется использовать, поскольку она может ухудшить производительность при ее выполнении для больших баз данных вместо KEYS, которые вы можете использовать SCAN или SETS .
Пример использования команды KEYS:
источник
Если ваш редис является кластером, вы можете использовать этот скрипт
источник
Получить все ключи в Redis
Получить все ключи, используя опцию --scan:
Перечислите все ключи, используя команду KEYS:
источник
Чтобы получить все ключи, доступные на сервере redis, вам нужно открыть redis-cli и набрать:
KEYS *
Чтобы получить дополнительную помощь, посетите эту страницу: Эта ссылкаисточник
Мы должны использовать --scan --pattern с redis 2.8 и более поздними версиями.
Вы можете попробовать использовать эту оболочку поверх Redis-Cli. https://github.com/VijayantSoni/redis-helper
источник
Если вы используете Laravel Framework, вы можете просто использовать это:
В Core PHP:
источник
Вы можете просто подключиться к вашему серверу Redis с помощью Redis-Cli, выбрать вашу базу данных и ввести KEYS *, помните, что он даст вам все ключи, присутствующие в выбранной базе данных Redis.
источник