Получение/перечисление всех пар ключ/значение в базе данных Redis

Я использую ORM под названием Ohm в Ruby, который работает поверх Redis, и мне любопытно узнать, как данные фактически хранятся. Мне было интересно, есть ли способ перечислить все ключи/значения в DBD Redis.

Любое свидание будет очень помогать мне (я в основном застрял). Спасибо заранее!

Update:
Примечание для других, пытающихся использовать это с помощью redis-cli, используйте это:

$ redis-cli keys
* (press * followed by Ctrl-D)
... (prints a list of keys and exits)
$

Спасибо @antirez и @hellvinz!

Ответ 1

Вы можете изучить набор данных Redis, используя инструмент redis-cli, включенный в дистрибутив Redis.

Просто запустите инструмент без аргументов, затем введите команды для изучения набора данных.

Например, KEYS отобразит все ключи, соответствующие шаблону стиля глобуса, например: keys * вы увидите все доступные ключи.

Затем вы можете использовать команду TYPE, чтобы проверить, какой тип является заданным ключом, если это список, вы можете извлекать элементы внутри, используя LRANGE mykey 0 -1. Если это набор, вы будете использовать вместо SMEMBERS mykey и так далее. Проверьте документацию Redis на список всех доступных команд и их работу.

Ответ 2

В командной строке вы также можете использовать команду dump, доступную с Redis 2.6.0

redis-cli KEYS \* | xargs -n 1 redis-cli dump

(обратите внимание, что это также работает с командой get для более ранних версий, если вы не возражаете)

Ответ 3

Просто добавив практический пример Ruby в ответ на antirez (я не посмею конкурировать с ним)

irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'redis'
=> true
irb(main):004:0> r = Redis.new
=> #<Redis:0x8605b64 @sock=#<TCPSocket:0x8605ab0>, @timeout=5, @port=6379, @db=0, @host="127.0.0.1">
irb(main):005:0> r.keys('*')

Ответ 4

Я оказался здесь, потому что искал, как сделать резервную копию всех ключей/значений в redis. Если это относится к вам, ознакомьтесь с этим article.

Используйте redis-cli bgsave