1
我的数据已存储在redis中的'lst'列表中。如何打印存储在redis中的列表中的数据?
我必须打印列表
for i in range(0,r_server.llen('lst')):
print ??????
我怎么写在for循环的所有元素?
我的数据已存储在redis中的'lst'列表中。如何打印存储在redis中的列表中的数据?
我必须打印列表
for i in range(0,r_server.llen('lst')):
print ??????
我怎么写在for循环的所有元素?
你的方法是有效的,但效果不佳 - 你会做很多不必要的请求,从而浪费CPU,带宽和时间。如果你的lst
有N个元素,你的环路将需要N + 1个呼叫,其中N个呼叫将是复杂度为O(N)的LINDEX
。
的Redis提供了一个更好的办法来做到这一点与LRANGE
命令,这样你就可以基本上替换所有呼叫给它一个调用的Redis,likeso:
l = redis_server.lrange('lst', 0, -1)
for x in l:
print x
但请注意,与这样大列表也有问题,因为在准备回复LRANGE
请求时(+消耗应答缓冲区的内存),您将阻止Redis。在这种情况下,您应该考虑在lst
上使用带RPOPLPUSH
的循环列表模式或其副本,无论有没有并发性考虑。