从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等数据类型同理。

猜你喜欢

转载自blog.csdn.net/harry5508/article/details/84102567