Python操作redis

redis 是一个数据库,他是非关系型数据库,nosql类型
k-v 格式
redis数据全部放在内存里面,每秒钟最大能支持10w的读写
import redis
r = redis.Redis(host="x.x.x.x",password="xxx",port=6379,db=4,decode_responses=True)
port 可以不写,默认是6379
decode_responses=True 默认在redis里获取的数据转换为字符串


redis 存取数据格式:
#字符串 string k-v {"name":111}
#哈希 hash 大字典 {"student":{"xiaohei":"xxx","xiaobai":"xxx"}}
#list

字符串类型操作:
# r.set("nhy_session","sdfsfsfsfsd",60) 写入数据 k,v,失效时间
# r.set("nhy_session","sdfsfsfsfsd") 不写失效时间,默认不失效
# print(r.get("nhy_session")) 获取数据
# r.delete("nhy_session") 删除数据

#基本操作
# print(r.ttl("key_ljq")) #获取key的失效时间
# print(r.keys() )#获取当前数据库里面所有的key
# print(r.keys("*_*") )#获取可以加条件
# print(r.exists("fmz_111")) #返回0代表不存在,返回1代表存在
# print(r.type("fmz_111"))#查看这个key的类型
# r.expire("nhy_session",60) #设置key的失效时间

#hash类型
# r.hset("students","xiaohei",'{"id":1,"score":99}')
# r.hset("students","xiaobai",'{"id":2,"score":99}')
d = {"wkf":1,"lhj":"222"}
r.hmset("students",d)
# xb_info = r.hget("students","xiaobai") #获取指定的小key
# ret = r.hgetall("students") #把大key里面的数据都获取到
# print(ret)
# r.hdel("students","xiaobai") #删除指定小key
# r.delete("students")
# r.hexists("students","xiaobai") #判断里面的小key是否存在
# print(xb_info.decode()) 在redis里面获取的数据都是byse类型,需要用decode转换一下
# new_ret = {}
# for k,v in ret.items():
# k = k.decode()
# v = v.decode()
# new_ret[k] = v
# print(new_ret)


list 类型操作
l = ['2', '1', '3']
r.lpush("black_list",*l)
# r.lpush("black_list","2")
# r.rpush("black_list","3")
# print(r.lrange("black_list",0,1)) 获取指定范围内的数据
# r.lpop("black_list") #从左边删
# r.rpop("black_list")#从右边删
# r.lset("black_list",0,"hhhh")#指定位置修改
# print(r.llen("black_list")) #取这个list的长度
# print(r.ltrim("black_list",0,0)) #删除列表里面的数据,除了你指定的范围
# print(r.lrem("black_list",2,"hhh")) #删除指定的元素


r.flushdb() 清空当前数据库
r,flushall() 清空所有数据库清空

在服务器连接redis: redis -cli -a password -h ip -p 6379

操作集群redis导入如下模块:
import rediscluster
posted @ 2021-06-16 23:39  黑。白。  阅读(182)  评论(0)    收藏  举报