1、直接操作
import redis pool=redis.ConnectionPool(host=‘49.234.159.231‘,port=9221,password=‘9U6rQ19kET10iKYa‘) conn=redis.Redis(connection_pool=pool) name=conn.get(‘name‘) print(name) #输出为b‘nulang‘,二进制格式 conn.set(‘age‘,20) age=conn.get(‘age‘), print(age.decode()) #转码后输出为20
2、pub/sub---发布订阅
#订阅,例:
import redis
pool=redis.ConnectionPool(host=‘49.234.159.231‘,port=26379)
conn=redis.Redis(connection_pool=pool)
pub=conn.pubsub()
pub.subscribe(‘+sdown‘,‘-sdown‘)
while True:
data=pub.parse_response()
print(data)
3、sentinel
from redis.sentinel import Sentinel #获取主从节点 sentinel = Sentinel([(‘49.234.159.231‘,26379)],socket_timeout=0.1) master_ip = sentinel.discover_master(‘mymaster‘) slave_ip =sentinel.discover_slaves(‘mymaster‘) #操控master或slave进行读写 master = sentinel.master_for(‘mymaster‘, socket_timeout=0.1) master.set(‘foo‘,‘bar‘) #获取主redis服务器并进行写入 slave = sentinel.slave_for(‘mymaster‘, socket_timeout=0.1) slave.get(‘foo‘) #获取从redis服务器进行获取
4、redis与sentinel结合实现failover的变化监控
import redis
from redis.sentinel import Sentinel
sentinel = Sentinel([(‘49.234.159.231‘,26379)],socket_timeout=0.1)
pool=redis.ConnectionPool(host=‘49.234.159.231‘,port=26379)
conn=redis.Redis(connection_pool=pool)
pub=conn.pubsub()
pub.subscribe(‘+sdown‘,‘-sdown‘)
for i in pub.listen():
if i[‘type‘] == ‘message‘:
master_ip = sentinel.discover_master(‘mymaster‘)
slave_ip = sentinel.discover_slaves(‘mymaster‘)
pool1 = redis.ConnectionPool(host=‘49.234.159.231‘, port=9221, password=‘9U6rQ19kET10iKYa‘)
conn1=redis.Redis(connection_pool=pool1)
conn1.set(‘master‘,str(master_ip))
conn1.set(‘slave‘,str(slave_ip))
conn1.publish(‘failover‘,‘change‘)
原文:https://www.cnblogs.com/kuangfengnulang/p/14769653.html