Мои данные были сохранены в списке 'lst' в redis.Как распечатать данные из списка, хранящегося в redis?
я должен напечатать все элементы списка
for i in range(0,r_server.llen('lst')):
print ??????
Что я пишу в течение цикла?
Мои данные были сохранены в списке 'lst' в redis.Как распечатать данные из списка, хранящегося в redis?
я должен напечатать все элементы списка
for i in range(0,r_server.llen('lst')):
print ??????
Что я пишу в течение цикла?
Ваш подход действителен, но неэффективен - вы будете делать много ненужных запросов, теряя при этом процессор, пропускную способность и время. Если у вашего lst
есть N элементов, для вашего цикла потребуется N + 1 вызовов для повтора, из которых N вызовов будут равны LINDEX
, сложность которых O (N).
Redis предлагает лучший способ сделать это с помощью команды LRANGE
, так что вы можете в основном заменить все вызовы Redis с помощью одного вызова к нему, likeso:
l = redis_server.lrange('lst', 0, -1)
for x in l:
print x
Примечание, однако, что делает это с большие списки также проблематичны, потому что вы будете блокировать Redis, пока он готовит ответ на запрос LRANGE
(+ память для хранения буфера ответа). В таких случаях вам следует использовать шаблон круглого списка с RPOPLPUSH
по адресу lst
или его копию с учетом или без учета параллелизма.