redis如何存儲list

redis如何存儲list

在工作中遇到了一個問題就是,因為業務需求需要做redis加速,那么存放在redis的list列表如何才能完整的存進去,再完整的取出來呢? ? ? ? ? (推薦學習:Redis視頻教程

如果使用redis的list存儲方法,將list = [1,2,3,4]列表中的元素一個一個遍歷取出,然后用lpush的方法將元素一個一個存進去,到最后你用完整的了lrange(‘name’,0,-1)取出,你會發現取出的list變成了一個str, 例如(list = ‘[1,2,3,4]’),這樣處理起來很麻煩。

經過不斷的嘗試,發現了一個比較好用的庫pickle.

pikle的優點是:序列化過程將文本信息轉變為二進制數據流。這樣就信息就容易存儲在硬盤之中,當需要讀取文件的時候,從硬盤中讀取數據,然后再將其反序列化便可以得到原始的數據。

在Python程序運行中得到了一些字符串、列表、字典等數據,想要長久的保存下來,方便以后使用,而不是簡單的放入內存中關機斷電就丟失數據。

python模塊大全中的Pickle模塊就派上用場了,它可以將對象轉換為一種可以傳輸或存儲的格式。這樣保證存儲和取出的數據的完整性。

from?redis?import?StrictRedis #?選取一個默認的redis的db倉庫 db?=?StrictRedis(host='localhost',?port=6379,?db=0,decode_responses=True) #導入pickle包 import?pickle ? list?=?[1,2,3,4] ? #?pickle?封裝list new_list?=?pickle.dumps(list) ? #?redis中存儲數據,設置過期時間 db.setx('list',3600,new_list) ? result?=?db.get('list') ? get_list?=?pickle.loads(result) ? print(get_list) #?get_list?=?[1,2,3,4]

經過pickle這樣處理后,你會發現取出的list好用多了。再也不用為數據轉換煞費苦心了,而且同樣的也可以處理json等數據類型的數據。

更多Redis相關技術文章,請訪問Redis視頻教程欄目進行學習!

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享