redis-py对sentinel的支持

redis-py同样支持Redis Sentinel,方法如下:

from redis.sentinel import Sentinel
sentinel = Sentinel([('localhost', 26379)], socket_timeout=0.1)
print 'master:',sentinel.discover_master('mymaster')
print 'slaves:',sentinel.discover_slaves('mymaster')
下面是打印结果:
maters: ('127.0.0.1', 6379)
slaves: [('127.0.0.1', 6380)]

使用Redis Sentinel连接采用如下方法:

master = sentinel.master_for('mymaster', socket_timeout=0.1)
slave = sentinel.slave_for('mymaster', socket_timeout=0.1)
master.set('foo', 'bar')
print slave.get('foo')
下面是打印结果:
'bar'

说明:

在实际应用中,以上测试局限于redis客户端,redis服务器和redis sentinel均部署在同一个主机上的情况

如果采用多台主机,那么redis server中的slaveof和sentinel中的monitor均需指定ip地址,不能用127.0.0.1

否则,会连接超时

你可能感兴趣的:(python,redis)