使用python链接redis sentinel
2017/12/23
posted in
Redis
2017/12/23
posted in
Redis
from redis.sentinel import Sentinel // 导入sentinel包
sentinel = Sentinel([('10.60.0.16',6388)],socket_timeout=0.1) // 获取sentinel的链接
sentinel.discover_master('sentinel-10.60.0.16-6386') // 获取master地址
sentinel.discover_slaves('sentinel-10.60.0.16-6386') // 获取slave地址
master = sentinel.master_for('sentinel-10.60.0.16-6386',socket_timeout=0.1) //获取master的连接
slave = sentinel.slave_for('sentinel-10.60.0.16-6386',socket_timeout=0.1) // 获取slave的连接
master.set('name','alex') // 向master插入一个值
slave.get('name') // 从slave获取该值
进入master
实例,使用shutdown
命令关闭master
实例,再次使用master.get('name')
命令从master
实例取值,python
报错Connection refused
,可见由于master
宕机,导致连接断开。
过了几秒后再次执行master.get('name')
命令,命令正常返回值,sentinel
已经进行了failover
处理,并且master
连接重新连接到了新的master
实例