zoukankan      html  css  js  c++  java
  • redis 3.2.13版本配置一主一从三哨兵模式

    1、上传并编译

    上传redis-3.2.13.tar.gz

    tar -zxvf redis-3.2.13.tar.gz

    cd redis-3.2.13

    make

    注意:

    可能需要安装gcc 执行yum install gcc-c++)

    如果出现zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory这样的错误,则需要 make MALLOC=libc

    创建日志目录

    mkdir -p /home/jyapp/redis-3.2.13/logs

    2、部署建议

    建议至少使用3台虚机(1主1从3哨兵)

    1、主redis,1个哨兵

    2、从redis,1个哨兵

    3、1个哨兵

    这种情况,当其中一台虚机完全宕机重启的情况下,也能够完成主从切换,使得redis可用

    3、修改redis.conf、sentinel.conf 配置文件

    主机 redis.conf 配置

    daemonize 改为 yes //允许后台运行

    protected-mode no //允许从其他主机连接redis端口

    port 8379 如果在原有主机上升级部署需要改端口

    pidfile 默认不用改

    logfile 指定到 redis目录下的 "/home/jyapp/redis-3.2.13/logs/redis.log"

    maxclients 4096 增加最大连接的客户端数量配置

    tcp-keepalive 修改为 60

    requirepass master123 //redis密码

    masterauth master123 //主redis密码  主从都需要配置,用于主从同步KEY值
    # bind 127.0.0.1 //将bind注释,使redis端口可以绑定到任意IP

    从机 redis.conf 配置

    daemonize 改为 yes //允许后台运行

    protected-mode no//允许从其他主机连接redis端口

    port 8379 如果在原有主机上升级部署需要改端口

    pidfile 默认不用改

    logfile 指定到 redis目录下的 "/home/jyapp/redis-3.2.13/logs/redis.log"

    maxclients 4096 增加最大连接的客户端数量配置

    tcp-keepalive 修改为 60

    masterauth master123 //主redis密码  主从都需要配置,用于主从同步KEY值

    requirepass master123 //redis密码

    slaveof IP 端口 //注意:IP 为redis主机的服务器IP

    # bind 127.0.0.1  //将bind注释,使redis端口可以绑定到任意IP

    配置监听服务 sentinel.conf

    主机,从机 保持一致即可

    可以清空原配置文件,然后直接复制下面信息

    主从机 都要配置上主机的IP和端口(如 主机IP 6379为主机的ip和端口):

    port 28379
    daemonize yes
    protected-mode no (3.2版本之后需要添加)
    logfile "/home/jyapp/redis-3.2.13/logs/sentinel.log"
    dir /home/jyapp/redis-3.2.13/
    sentinel monitor mymaster 主机IP 8379 2
    sentinel down-after-milliseconds mymaster 8000
    sentinel failover-timeout mymaster 30000
    sentinel parallel-syncs mymaster 1
    sentinel deny-scripts-reconfig yes
    sentinel auth-pass mymaster master123 //密码


    3、启动

    先启动主机的服务,再启动从机的服务

    src/redis-server redis.conf

    再启动监听服务

    src/redis-sentinel sentinel.conf

    可以用下列命令 来查看服务

    src/redis-cli -p 8379 -a 密码 info

    src/redis-cli -p 28379 -a 密码  info

    4、验证

    在主redis中验证主从同步:

    src/redis-cli -p8379 -a 密码

    登陆后执行

    set test1 12345

    使用keys * 查看是否有健值

    如有健值,再到从redis上执行keys *查看健值是否己经同步

    验证主从切换

    将主进程的redis及哨兵进程杀掉,在从redis中执行

    src/redis-cli -p 8379 -a 密码   info 

    验证role是否己经变为master

    注意事项:
    我遇到的问题,暂没有复现,三哨兵模式时,当哨兵模式启动后,三个哨兵会同步哨兵信息,即会将三个哨兵信息的相关信息同步到哨兵配制文件中sentinel.conf,如果更改新加后哨兵的配置文件,即更换“sentinel monitor mymaster 主机IP 6379 2”中的主机IP后,会出现新加入主机变为从,而原有主机为主的情况。
    举例如下:
    如 我原有一主一从三哨兵为
    131 132 为主从 27为哨兵
    当27 的哨兵配置文件修改IP后,准备为将其加入167 168这俩台主从redis中做为哨兵,即sentinel monitor mymaster IP168 6379 2
    将27哨兵修改配置文件重启后,出现原132还是主,但原167的主会切换为从的情况,大家在配置时稍为注意一下,不要轻易修改生产哨兵配置,另外切换为从的文件会强制同步redis.conf从的配置文件。

     
  • 相关阅读:
    模块 configparser subprocess 表格 的
    random, json, pickle, hashlib, hmac, shutil, shelve
    常用模块 1.时间模块 2.系统模块 3.项目开发目录规范
    GAN 教程记录
    matplotlib.pyplot展示MNIST图片
    机器学习算法辨别
    命令
    搭环境
    不对称分类的错误评估
    入侵检测数据集
  • 原文地址:https://www.cnblogs.com/litzhiai/p/12092792.html
Copyright © 2011-2022 走看看