美文网首页
python操作redis

python操作redis

作者: Chaweys | 来源:发表于2021-12-06 00:25 被阅读0次

import redis
pool=redis.ConnectionPool(host="127.0.0.1",port=int(6377),db=0,decode_responses=True)
r=redis.StrictRedis(connection_pool=pool)

print(r.ping()) #结果:True

#1、字符串类型
r.set("str1","name")
print(r.get("str1"))  
#结果:name 字符串类型

r.set("str2",111)
print(r.get("str2")) 
#结果:111 字符串类型



#2、列表类型:向列表list1中头部插入列表元素
r.lpush("list1","a","b")
r.lpush("list1","c")
print(r.lrange("list1",0,-1))
# 结果:['c', 'b', 'a']



#3、hash类型
r.hset("dict1",mapping={"name":"xiaohu","age":"18"})
print(r.hget("dict1","name")) 
#结果:xiaohu
print(r.hget("dict1","age")) 
#结果:18

#或者
r.hset("dict1",key="name",value="xiaohu")
print(r.hget("dict1","name")) 
#结果:xiaohu



#4、集合类型
# r.sadd("set1","a","b","c")
print(r.smembers("set1")) #结果:{'c', 'a', 'b'}

集群模式下操作redis

redis集群模式批量删除key:

在redis集群中,插槽是分布式的,del删除使用多个键的命令:del key1 key2 失败并显示 CROSSSLOT Keys in request don't hash to the same slot错误。

解决办法:
for node in redis_node:
    redis-cli -h {node} -p 7001 -a 123456 keys keyname* | xargs -r -t -n1 ./redis-cli -h {node} -p 7001 -a 123456 del

因为是集群模式,keys 找出的所有key不一定在一个solt分片上,所以使用xargs方式传递在每个分片上查询出的所有key,并执行批量删除同一分片上key

【注】:批量删除redis的key,避免命令执行失败,一次最多可批量删除5000个key

相关文章

网友评论

      本文标题:python操作redis

      本文链接:https://www.haomeiwen.com/subject/bkdkiltx.html