php 连接redis哨兵,PHP操作redis集群哨兵模式

前段时间项目里正好用到了redis的集群哨兵部署,因为此前并无了解过,所以一脸懵逼啊,查阅了几篇资料,特此综合总结一下,作为记录。

写在前沿:随着项目的扩张,对redis的依赖也越来越大,为了增强redis的性能,防止其挂掉,所以第一次尝试下项目里引用redis哨兵监控redis集群。

哨兵模式:粗略看了原理,并无详细了解,如有不对,虚心求教。监听redis主库心跳包,如果心跳断开,则枚举一个从库推举成为新的主库,防止redis宕机不能使用

本方法是通过php-redis扩展里的rawCommand函数完成(必须安装2.2.7或以上的php-redis扩展才有此函数),如果不了解哨兵模式的工作原理,可以先查询一下,可以更好的帮助理解,在此之前我只是粗略的查了一下,

//初始化redis对象

$redis = new Redis();

//连接sentinel服务 host为ip,port为端口,哨兵的ip和端口号

$redis->connect($host, $port);

//获取主库列表及其状态信息

$result = $redis->rawCommand('SENTINEL', 'masters');

//根据所配置的主库redis名称获取对应的信息

//master_name应该由运维告知(也可以由上一步的信息中获取)

$result = $redis->rawCommand('SENTINEL', 'master', $master_name);

//根据所配置的主库redis名称获取其对应从库列表及其信息

$result = redis->rawCommand('SENTINEL', 'slaves', $master_name);

//获取特定名称的redis主库地址

$result = $redis->rawCommand('SENTINEL', 'get-master-addr-by-name', $master_name)

//以上部分可以获取到主库的ip和对应端口,程序可以直接像链接单台redis一样链接操作使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值