1. 程式人生 > >從redis存取資料的資料轉碼、轉型別問題

從redis存取資料的資料轉碼、轉型別問題

初學Redis,做一個固定資料的寫死頁面,每次從MySQL資料庫取值實在是太慢,故選用redis存取。

1、連線資料庫

import redis

# 與本地redis進行連結,地址為:localhost,埠號為6379
r = redis.StrictRedis(host='地址', port=埠號,password='密碼')

2、存資料:將需要儲存的資料存在redis資料庫(此處儲存的是list列表型別【增刪快、鏈式結構、按插入順序排序】)

            
#這裡我要將list列表儲存在redis中,先遍歷,然後一個一個從右邊(後面追加)推進redis資料庫中

            for item in result:
                #在name對應的list中新增元素,每個新的元素都新增到列表的最右邊
                #資料都儲存在資料庫名字叫“key”的鍵裡
                lpush = r.rpush(key,item)
                #推進一條返回當前行數,未成功則返回0
                print("推進去redis", lpush)

3、取資料:

import json
#從redis中取出資料
#lrange:list列表型別的取出語法,後面跟0,-1 代表取出全部。
 result = r.lrange(key_private_list , 0, -1)
            #定義一個空列表儲存取出的元素
            reallyresult=[]
            #遍歷取出的全部資料,實際上是列表型別的bytes資料型別
            for item in result:
                try:
            #要對bytes資料進行轉義,str(item, encoding='utf-8')先轉成字串
            #replace("'", "\"").replace("\n", "")將'替換成"方便json轉義,True,False同理
                    item = str(item, encoding='utf-8').replace("'", "\"").replace("\n", "").replace("True", "true").replace("False", "false")
                    #json.loads()函式是將json格式資料轉換為字典(可以這麼理解,json.loads()函式是將字串轉化為字典)
                    item = json.loads(item)
                    #空列表追加資料
                    reallyresult.append(item)
                except Exception as err:
                    #丟擲錯誤
                    raise err
           #最後得到的reallyresult是取出的列表。

以上只是redis的value是list列表型別的資料存取,String、Set等資料型別同理。