Подтвердить что ты не робот

Получить список всех ключей, хранящихся в Redis (Ruby)

Есть ли функция в камне redis-rb, которая возвращает список всех ключей, хранящихся в БД? Моя конечная цель - перебрать все мои пары ключ/значение и выполнить некоторые действия над ними.

4b9b3361

Ответ 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.