操作单redis
需要安装redis模块:pip install redis
demo:
#!/usr/bin/env python3
# coding = utf-8import redis
import threadingdef a():conn = redis.Redis(host="192.168.1.66", port=6379, password="123456", db=6,# decode_responses=True # 设置True存取数据编解码为字符串,默认False)set_result = conn.set("a", "ABC")print("set_result:", set_result)getval = conn.get("a")print("getval=", getval)del_result = conn.delete("a")print("del_result:", del_result)def sub_th():sub = conn.pubsub()sub.subscribe("mych")for m in sub.listen():# 第一个消息type=subscribe是订阅确认消息print(m)t1 = threading.Thread(target=sub_th)t1.start()conn.publish("mych", "hello world")def b():pool = redis.ConnectionPool(host="192.168.1.66", port=6379, password="123456", db=6,max_connections=10, socket_timeout=10, socket_connect_timeout=5,retry_on_timeout=True, health_check_interval=30, decode_responses=True)conn = redis.Redis(connection_pool=pool)conn.publish("mych", "test")conn.set("a", "AAA")val = conn.get("a")print(val) # 字符串conn.delete("a")a()
b()
运行结果:
操作redis集群
需要安装redis-py-cluster模块:pip install redis-py-cluster
集群192.168.1.66,端口9001-9006
demo:
#!/usr/bin/env python3
# coding = utf-8from rediscluster import RedisClusternodes = [{"host": "192.168.1.66", "port": "9001"},{"host": "192.168.1.66", "port": "9002"}
]
rc = RedisCluster(startup_nodes=nodes, decode_responses=True, password="123456")
rc.set("a", "AAA")
v = rc.get("a")
print("v=", v)
rc.delete("a")
rc.publish("abc", "hello a")
p = rc.pubsub()
p.subscribe("aaa")
for m in p.listen():print(m)p.unsubscribe()
运行结果:
可以设置decode_responses=True,自动解码为字符串,默认False字节串;订阅和取消订阅也会listen到确认消息;