python基础----redis模块

数据库  关系型数据    例如mysql,有表还有约束条件等
非关系型 k-v形式 memcache 存在内存中 redis 存在内存 mongodb 数据存在磁盘

import redis
#string类型
#1.连接redis
r=redis.Redis(host='200.149.208.16',port=6379,password='123456',db=1)
#set 写数据
r.set('lsy_token','2018-hh')#set数据,写数据
#get获取数据
print(r.get('lsy_token').decode())#redis里取出的数据都是bytes类型,所以用decode转化成字符串
#delete删除数据
r.delete('lsy_token')#删除
#setex设置失效时间
r.setex('lsy_token','2018-hh',20)#指定key的失效时间,单位是秒
#set get delete setex 都是针对string类型的 k-v

#hash类型
#hset新增数据
r.hset('lsy_session','zhangsan','1223')
r.hset('lsy_session','lisi','1223')
r.hset('lsy_session','wangwu','1223')
r.hset('lsy_session','liuli','1223')
#hget获取数据
print(r.hget('lsy_session','111').decode())#传两个值,获得数据
redis_data=r.hgetall('lsy_session') #获取hash类型里的所有数据
#字典没有decode类型,怎么办---迭代
all_data={}
for k,v in redis_data.items():#把hash类型所有的数据转化成正常的字典
    k=k.decode()
    v = v.decode()
    all_data[k]=v
print(redis_data)
print(all_data)
#hash类型没有过期时间
#设置文件分层
r.set('szz:homeword:lsy','没交')#设置文件夹分类,层级,
r.set('szz:homeword:张三','交了')
r.set('李四','交了')

print(r.keys())#打印所有的key
print(r.keys('lsy*'))#获取以lsy开头的key
print(r.type('lsy_session'))#获取key的类型

封装redis函数

import redis
def op_redis(host,password,k,v=None,port=6379,db=0):
    r=redis.Redis(host=host,password=password,port=port,db=db)
    if v:
        r.set(k,v)#有传key就说明是set操作
        res='ok'
    else:
        res=r.get(k)
        if res:#判断有没有get到数据
            res=res.decode()#没有传key就说明是get操作,如果传的key不存在返回None,None没有decode
        else:
            res=None
    return res
原文地址:https://www.cnblogs.com/alasijia/p/8334557.html