python学习笔记6--操作redis

时间:2021-12-30 07:03:48

一、redis操作

import redis

r=redis.Redis(host='211.149.218.16',port=6379,password='123456',db=2)
r.set('suki','suki123')#插入 string类型的值
print(r.get('suki').decode())#redis读取出来的值都是Byte类型,用decode转为字符串
r.delete('suki')
r.setex('suki','hahahaha',10)#指定key的失效时间 r.setex(key,value,时间)


#hash类型
r.hset('sessions','suki','123456') #rediskey:sessions rowkey:suki
print(r.hget('sessions','suki'))#获取数据
print(r.hgetall('sessions'))#获取所有数据


redis_data=r.hgetall('sessions')
all_data={}
for k,v in redis_data.items():
    k=k.decode()
    v=v.decode()
    all_data[k]=v
print(redis_data)
print(all_data)


#下面这种是有层级的 有文件夹的那种
r.set('txz:suki','没交')
r.set('txz:ski:ski2','交了')
print(r.keys())
print(r.keys('txz*'))#模糊匹配,获取txz开头的key
print(r.type('txz'))#获取key的类型

  

  

二、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:#传入value的话说明是写操作
        r.set(k,v)
        res='ok'
    else:
        res=r.get(k)
        if res: #有值的话返回值
            res=res.decode()
        else:
            res=None
    return res