Я только что начал с Redis. Моя БД содержит около 1 миллиарда записей. Использование HKEYS *
приводит к ошибке в памяти.Итерация через клавиши в Redis
Есть ли способ перебирать ключи? Что-то вроде HKEYS *
, но с пределом n?
Edit:
Я сейчас, используя цикл, который соответствует шаблону
for c in '1234567890abcedf':
r.keys(c + '*')
Вы имели в виду 'КЛЮЧИ *', верно? 'HKEYS' предназначен для перечисления ключей хэша. В любом случае, если вы используете «KEYS» в своем коде, есть большая вероятность, что вы делаете что-то неправильно, то есть не используете Redis, поскольку он должен использоваться. 'KEYS' следует рассматривать только как функцию отладки. Вероятно, вы не используете правильный тип данных redis. Опишите вашу проблему (например, почему вам нужно перечислить ключи), и я мог бы помочь выбрать правильную базу данных redis, соответствующую вашей проблеме. –
См. Ответ http://stackoverflow.com/questions/9127736/redis-sorted-sets-and-best-way-to-store-uids/9195219#9195219 - у вас есть пример масштабируемой ключевой итерации. –