Ubuntu redis哨兵配置

  • 环境与工具
  • 部署环境
  • 部署工具
  • 安装sentinel(哨兵)
  • sentinel配置文件解读
  • 创建三个sentinel
  • 启动sentinel
  • 查看sentinel信息



 

环境与工具

部署环境

  • 阿里云Ubuntu 16.04
  • Redis 3.0.6

部署工具

  • Xshell 6
  • Xftp 6
     

安装sentinel(哨兵)

键入sudo apt-get install redis-sentinel

redis哨兵模式集群配置密码认证 redis 哨兵配置_数据库

此时在 /etc/redis 下可以看到新的哨兵配置文件sentinel.conf

redis哨兵模式集群配置密码认证 redis 哨兵配置_数据库_02


sentinel配置文件解读

键入vim sentinel.conf 查看配置文件:
几个重要的配置内容如下:

#是否为守护进程
daemonize yes

pidfile "/var/run/redis/redis-sentinel.pid"
logfile "/var/log/redis/redis-sentinel.log"
bind 127.0.0.1
port 26379

#工作目录
dir "/var/lib/redis"

#声明该哨兵的主库是mymaster,主库的ip和端口分别为127.0.0.1和6379
#最后一个2的含义是,在哨兵发生领导选举时,该哨兵需要获得2票才能成为leader
sentinel monitor mymaster 127.0.0.1 6379 2

#在mymaster宕机30秒后进行主观下线
sentinel down-after-milliseconds mymaster 30000

#指定在发生failover故障转移时最多可以有1个slave同时对新的master进行同步
sentinel parallel-syncs mymaster 1

#设置故障转移超时时间为180秒
#这个参数的意义比较复杂,详细可以参考官方的注释说明
sentinel failover-timeout mymaster 180000

#发现两个从节点
sentinel known-slave mymaster 127.0.0.1 6380
sentinel known-slave mymaster 127.0.0.1 6381

#epoch实现类似版本号的功能
sentinel current-epoch 0

创建三个sentinel

键入vim sentinel-26379.conf,编辑文件如下:

port 26379
daemonize yes
dir /opt/redis-5.0.4/data
logfile "26379.log"
sentinel monitor mymaster 127.0.0.1  6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

保存退出。

 

 

复制出两个新的sentinel

键入cp -v sentinel-26379.conf sentinel-26380.conf并修改新配置文件如下:

redis哨兵模式集群配置密码认证 redis 哨兵配置_redis_03


也即将端口改为26380即可。

同理,再复制出一份sentinel-26381.conf,完成三个哨兵的配置。


启动sentinel

键入 redis-sentinel sentinel-26379.conf

redis哨兵模式集群配置密码认证 redis 哨兵配置_数据库_04

发现提示说没有创建文件夹,创建再重新执行即可:依次键入mkdir /opt/redis-5.0.4mkdir /opt/redis-5.0.4/data

redis哨兵模式集群配置密码认证 redis 哨兵配置_高可用_05

执行成功。

查看进程:

redis哨兵模式集群配置密码认证 redis 哨兵配置_高可用_06

同样,我们启动sentinel-26380.confsentinel-26381.conf

查看sentinel信息

  1. 键入vim sentinel-26381.conf可以看到配置有一些自动添加的内容:
  2. redis哨兵模式集群配置密码认证 redis 哨兵配置_redis哨兵模式集群配置密码认证_07

  3. 如果发生了故障转移,sentinel的配置文件会自动进行相应的更改。
  4. 键入redis-cli -p 26379 info,可以看到部分信息如下:
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
#主节点是mymaster,ip和端口分别为127.0.0.1和6379,有2个从节点,共4个sentinel
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=4

配置成功。