zoukankan      html  css  js  c++  java
  • 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一样链接操作使用 
    ————————————————
    版权声明:本文为CSDN博主「大金链子小手表」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u010824676/article/details/81011887

  • 相关阅读:
    前端构建工具gulpjs的使用介绍及技巧
    mysql /*! 50100 ... */ 条件编译
    linux 硬连接与软连接
    Linux 数据流重定向
    倒排索引
    sed 常用的功能
    linux mysql安装
    mysql help
    linux 命令行选项
    mysql 主主复制的配置流程
  • 原文地址:https://www.cnblogs.com/myJuly/p/12686520.html
Copyright © 2011-2022 走看看