Redis的哨兵(sentinel)配置和Python程序应用示例(3)

检查sentinel配置文件:
[root@DB ~]# grep -Ev '^#|^$' /etc/sentinel_26379.conf 
port 26379
daemonize yes
logfile "/var/log/sentinel.log"
dir "/tmp"
sentinel monitor mymaster 192.168.221.161 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 6000
sentinel config-epoch mymaster 7
sentinel known-slave mymaster 192.168.221.160 6379
sentinel known-sentinel mymaster 192.168.221.161 26379 74f54a23bf06b57ce1618ee48f42a09a11522bb9

可以看到配置文件监控的master机器也变成了192.168.221.161:6379。

七、Python程序访问sentinel集群
由于很好奇连入的程序是如何访问sentinel集群的,自己用python验证了一下。
Python下需要安装redis相关的lib库,我这里使用的是redis-2.10.5版本
[root@DB ~]# python 
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from redis.sentinel import Sentinel #加载redis模块
>>> sentinel = Sentinel([('192.168.221.160', 26379),
...                      ('192.168.221.161', 26379)],
...                    socket_timeout=0.1) #连接哨兵服务器
>>> sentinel.discover_master('mymaster') #获取主redis服务器地址
('192.168.221.161', 6379)
>>> sentinel.discover_slaves('mymaster')#获取从redis服务区地址
[('192.168.221.160', 6379)]
>>> master = sentinel.master_for('mymaster', socket_timeout=0.1) 
>>> master.set('foo','bar') #获取主redis服务器并进行写入
True
>>> slave = sentinel.slave_for('mymaster', socket_timeout=0.1)
>>> slave.get('foo')#获取从redis服务器进行获取
'bar'
>>>

初步认为程序通过sentinel提供的端口进行访问,获取主redis进行写入操作,读的话如果不指定方式会采取轮询的方式进行读操作。

下面关于Redis的文章您也可能喜欢,不妨参考下:

Ubuntu 14.04下Redis安装及简单测试

Redis主从复制基本配置

Redis集群搭建与简单使用 

CentOS 7下Redis的安装与配置

Ubuntu 14.04安装Redis与简单配置

Ubuntu 16.04环境中安装PHP7.0 Redis扩展

Redis 单机&集群离线安装部署

CentOS 7.0 安装Redis 3.2.1详细过程和使用常见问题

Ubuntu 16.04环境中安装PHP7.0 Redis扩展

Ubuntu 15.10下Redis集群部署文档

Redis实战 中文PDF

Redis热迁移实战总结 

Redis3.0配置文件详解 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/aa82575f9e9f5fc5b83e7ad2de6c2c91.html