redis主从部署-Sentinel(哨兵模式)

centos7  redis主从部署-Sentinel(哨兵模式)

本文使用一台服务器和多个端口实现 ,本机ip : 192.168.3.10

如果使用多台服务器则需要防火墙开放对应的端口(防火墙设置如果报错根据错误百度自行解决)

       [root@localhost /]# firewall-cmd --state  // 查看firewall防火墙情况

       [root@localhost /]# service firewalld start  // 开启firewall防火墙

       [root@localhost /]# firewall-cmd --add-port=6379/tcp   //添加端口重启后需重启添加

       [root@localhost /]# firewall-cmd --permanent --add-port=6379/tcp   //添加端口重启 permanent参数表示永久有效

       [root@localhost /]# firewall-cmd --remove-port=6379/tcp  //删除端口

       [root@localhost /]# firewall-cmd --query-port=6379/tcp  //查看端口

       [root@localhost /]# firewall-cmd --list-all  //查看所有firewall端口

       [root@localhost /]# firewall-cmd --reload  //重启防火墙

1、安装redis

       [root@localhost updown]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz     //下载

       [root@localhost updown]# tar zxvf redis-5.0.5.tar.gz   //解压

       [root@localhost updown]# cd redis-5.0.5

       [root@localhost redis-5.0.5]# make   //编译 

       [root@localhost redis-5.0.5]# make install PREFIX=/usr/local/redis   //安装到/usr/local/redis

       [root@localhost redis-5.0.5]# mkdir /usr/local/redis/bin/conf  //在安装目录中创建配置文件目录

       [root@localhost redis-5.0.5]# cp redis.conf /usr/local/redis/bin/conf/          //主服务配置文件默认端口6379

       [root@localhost redis-5.0.5]# cp redis.conf /usr/local/redis/bin/conf/redis-6380.conf         //从服务配置文件端口6380

       [root@localhost redis-5.0.5]# cp redis.conf /usr/local/redis/bin/conf/redis-6381.conf         //从服务配置文件端口6381

       [root@localhost redis-5.0.5]# cp redis.conf /usr/local/redis/bin/conf/redis-6382.conf         //从服务配置文件端口6382

2、修改主配置文件

        [root@localhost redis-5.0.5]# vim /usr/local/redis/bin/conf/redis.conf

            1) 找到bind 127.0.0.1  修改成 bind 0.0.0.0    //都可以访问

            2)找到 protected-mode yes 修改成   protected-mode no  //关闭保护模式

            3) 找到daemonize no  修改成 daemonize yes    //守护线程yes redis会在后台运行, no 进入redis的命令行界面

3、修改从配置文件

         [root@localhost redis-5.0.5]# vim /usr/local/redis/bin/conf/redis-6380.conf

            1) 找到bind 127.0.0.1  修改成 #bind 127.0.0.1    //注销它开启远程访问

            2) 找到daemonize no  修改成 daemonize yes    //守护线程yes redis会在后台运行, no 进入redis的命令行界面

            3) 找到 protected-mode 值设置为 no    //关闭保护模式

            4) 找到port  //值修改端口为6380

            5) 找到 pidfile  //值修改为/usr/local/redis/conf/redis-6380.pid

            6) 找到rdbchecksum yes 在他下面添加两行(在末尾添加就可以)

                 slaveof 192.168.3.10 6379   //slaveof命令可以将当前服务器转变为指定服务器的从属服务

                 slave-read-only yes //只读

                注意
                 我的redis版本不是 slaveof 而是 replicaof
                 下面这两行和上面的两行功能一样

                 replicaof 192.168.3.10 7379
                 replica-read-only yes     //只读

            7)  /usr/local/redis/bin/conf/redis-6381.conf

                 /usr/local/redis/bin/conf/redis-6382.conf

                 这两个配置文件同上配置

4、启动redis 服务实例

     [root@localhost redis-5.0.5]# cd /usr/local/redis/bin

     [root@localhost bin]# ./redis-server  conf/redis.conf  //先启动主服务器

     [root@localhost bin]# ./redis-server  conf/redis-6380.conf  //启动从服务器

     [root@localhost bin]# ./redis-server  conf/redis-6381.conf  //启动从服务器

     [root@localhost bin]# ./redis-server  conf/redis-6382.conf  //启动从服务器

5、查看是否启动

      [root@localhost bin]# ps -ef | grep redis

         root     26421     1  0 19:24 ?        00:00:11 /usr/local/redis/bin/redis-server 0.0.0.0:6379

         root     23823     1  0 18:10 ?        00:00:13 ./redis-server *:6380
         root     23937     1  0 18:16 ?        00:00:12 ./redis-server *:6381

         root     23937     1  0 18:16 ?        00:00:12 ./redis-server *:6382

6、验证主从

       [root@localhost bin]# ./redis-cli     //默认 6379 主服务

127.0.0.1:6379> info

# Replication
role:master
connected_slaves:3
slave0:ip=192.168.3.10,port=6380,state=online,offset=210,lag=1
slave1:ip=192.168.3.10,port=6381,state=online,offset=224,lag=1
slave2:ip=192.168.3.10,port=6382,state=online,offset=224,lag=1
master_replid:33763613f871403444b07f81f77ac48783009ff0

127.0.0.1:6379> set name fuj

      [root@localhost bin]# ./redis-cli -p 6380   //6380 从服务
127.0.0.1:6380> get name
"fuj"
 


这中主从模式一旦主服务挂掉整个redis服务将不可用。它不能实现从节点自动升级成主服务,为了实现从节点自动升级成主服务,这里将使用哨兵模式。下面为基于主从哨兵模式配置

1、在上面的redis解压文件夹复制哨兵配置文件到安装目录配置目录中(我这里同样放在/usr/local/redis/bin/conf中)

      [root@localhost redis-5.0.5]# cp sentinel.conf /usr/local/redis/bin/conf/    //主服务器

      [root@localhost redis-5.0.5]# cp sentinel.conf /usr/local/redis/bin/conf/sentinel-6380.conf  

      [root@localhost redis-5.0.5]# cp sentinel.conf /usr/local/redis/bin/conf/sentinel-6381.conf     

      [root@localhost redis-5.0.5]# cp sentinel.conf /usr/local/redis/bin/conf/sentinel-6382.conf    

2、修sentinel.conf 文件

      [root@localhost bin]# vim conf/sentinel.conf

          1)找到port 26379 修改成对应的端口

          2)找到daemonize no  修改成 daemonize yes

          3)找到sentinel monitor mymaster 127.0.0.1 6379 2修改成sentinel monitor r1 192.168.3.10 6379 1

                r1 监控名称可以自定义(配置文件里所有mymaster修改成此处设置的监控名称)

               192.168.3.10 哨兵监控的ip 主ip

                6379 端口 

                1  选举次数

          4)修改 sentinel-6380.conf  sentinel-6381.conf  sentinel-6382.conf

                找到port 26379 修改成对应的端口26380   26381  26382

                找到daemonize no  修改成 daemonize yes

                找到sentinel monitor mymaster 127.0.0.1 6379 2修改成sentinel monitor r1 192.168.3.10 6379 1

                r1 监控名称可以自定义(配置文件里所有mymaster修改成此处设置的监控名称)

               192.168.3.10 哨兵监控的ip

                6379 端口 

                1  选举次数

3、开启哨兵

      [root@localhost bin]# ./redis-sentinel conf/sentinel.conf

      [root@localhost bin]# ./redis-sentinel conf/sentinel-26380.conf

      [root@localhost bin]# ./redis-sentinel conf/sentinel-26381.conf

      [root@localhost bin]# ./redis-sentinel conf/sentinel-26382.conf

4、验证

      [root@localhost bin]# ./redis-cli -p 26380

127.0.0.1:26380>info

 [root@localhost bin]# ./redis-cli -p 6379 shutdown    //关掉主等一会儿

 [root@localhost bin]# ./redis-cli -p 26380

127.0.0.1:26380>info

此时主已经自动切换

[root@localhost bin]# ./redis-cli -p 6382   //进入主服务

127.0.0.1:6382>info

此时只有只有两个从服务了

此时主已经自动切换

[root@localhost bin]# ./redis-server conf/redis-6379.conf   //打开关闭的6379服务

[root@localhost bin]# ./redis-cli -p 6382   //进入主服务

127.0.0.1:6382>info

此时从服务恢复到3个 6379服务变成了6382的从服务了

以上配置没有密码设置。这里只做配置,没有对原理做讲解,如果需要知道原理请自行百度!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值