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
的循環列表模式或其副本,無論有沒有併發性考慮。