Есть ли функция в камне redis-rb, которая возвращает список всех ключей, хранящихся в БД? Моя конечная цель - перебрать все мои пары ключ/значение и выполнить некоторые действия над ними.
Получить список всех ключей, хранящихся в Redis (Ruby)
Ответ 1
Конечно, redis-rb предоставляет все команды Redis и представляет их как методы на вашем клиентском объекте.
redis.keys('*')
Ответ 2
Если у вас есть значительное количество записей в вашем db, ядро убьет ваш redis.keys
, потому что он будет потреблять слишком много ОЗУ.
То, что вы хотите, это извлечение ключей в пакетах. redis-rb имеет замечательный метод для этого (отсутствует в redis):
redis.scan_each(match: 'user:*') do |resume_key_name|
resume_key_name #=> "user:12"
end
Если вы хотите все ключи, просто не используйте опцию match
.
Ответ 3
redis.keys
это вернет результат в виде массива.
Дополнительная информация: http://www.rubydoc.info/github/ezmobius/redis-rb/Redis