zoukankan      html  css  js  c++  java
  • redis哨兵集群搭建

    下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下

    解压 命令:tar -zxvf redis-4.0.11.tar.gz

     解压后如图所示

     在/usr/local目录下创建redis_sentinel文件夹

     将/data/redis目录下解压后的redis文件夹移动到/usr/local/redis_sentinel目录下,命令 mv /data/redis/redis-4.0.11 /usr/local/redis_sentinel/

     在/usr/local/redis_sentinel目录下创建6379 6380 6381 sentinel_server四个文件夹,命令 mkdir 6379 6380 6381 sentinel_server

     进入到redis-4.0.11目录下,命令 make all

     将redis-4.0.11/redis.conf文件分别拷贝到6379 6380 6381的目录下,将redis-4.0.11/sentinel.conf文件拷贝到sentinel_server的目录下如下图所示

     我们将6379作为主服务,编辑6379下的redis.conf文件

    daemonize 设置为 yes

    protected-mode  设置为no 如果不设置为no,web服务是连接不上的

     注释掉bind ip地址,或者设置为0.0.0.0否则远程连接是访问不了的

     编辑6380下的redis.conf文件

    daemonize 设置为 yes;protected-mode  设置为no;注释掉bind ip地址(这三步同上);

    另外修改 port为6380

    设置当前节点的主节点 slaveof 127.0.0.1 6379

     编辑6381下的redis.conf文件

    daemonize 设置为 yes;protected-mode  设置为no;注释掉bind ip地址(这三步同上);

    另外修改 port为6381

    设置当前节点的主节点 slaveof 127.0.0.1 6379sentinel monitor mymaster 127.0.0.1 6379 1

    编辑sentinel_server下的sentinel.conf文件

    设置sentinel monitor mymaster 127.0.0.1 6379 1 (mymaster可以随意取,但是下面的需要跟这里一致;如果要在web程序中使用,127.0.0.1必须改为对应的ip地址,否则会连不上)

     设置sentinel down-after-milliseconds mymaster 10000 也可以默认不变

     添加 daemonize yes

    这里默认不变

     

    设置 failover-timeout mymaster 60000

     

     启动 6379 6380 6381三个节点服务,如下图所示

     启动sentinel服务

     进入6379节点,显示为 主节点;设置aaa 为 111,并且能获取成功

     进入6380节点,显示为从节点,可以成功获取aaa的值,但是不能添加值,这就是redis读写分离

    进入6381节点,同6380节点一样

     现在我们尝试将6379节点shutdown

     我们在进入6380节点,发现master已经变成6381节点了

     进入6381节点,如下图所示

     我们发现 6381节点确实变成主节点,而且可以设置新的值;这就是redis哨兵集群,当主节点down掉之后,会在从节点中选一个作为新的主节点

  • 相关阅读:
    缓存一致性问题
    缓存雪崩
    mysql Replication机制
    数据库水平切分、拆库拆表
    mysql分表和分区实际应用简介
    mysql中间件
    mysql基础知识
    go语言redis使用(redigo)
    nginx location配置与rewrite配置
    PDO驱动使用
  • 原文地址:https://www.cnblogs.com/hjw-zq/p/11923102.html
Copyright © 2011-2022 走看看