这篇和之前的文章大同小异.只是redis版本不同,截图更为仔细了.
Centos7 安装redis5.0.4哨兵
ip
172.20.19.49 主
172.20.19.98 从
安装redis
安装依赖
yum install gcc gcc-c++ -y
cd /usr/local
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
2台均按以下命令安装redis
cd /usr/local
tar zxvf redis-5.0.4.tar.gzmv redis-5.0.4 redis
cd redis
make MALLOC=libc
make
make install
mv /usr/local/redis-5.0.4 /usr/local/redis
配置redis 主从
修改master 172.20.19.49的/usr/local/redis/redis.conf
daemonize yes pidfile "/var/run/redis.pid" port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 0 loglevel notice logfile "/usr/local/redis/redis.log" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename "dump.rdb" dir "/usr/local/redis" slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 requirepass "Hangzhou@123" appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes masterauth "Hangzhou@123" protected-mode yes |
修改slave 172.20.19.98的/usr/local/redis/redis.conf
daemonize yes pidfile "/var/run/redis.pid" port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 0 loglevel notice logfile "/usr/local/redis/redis.log" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename "dump.rdb" dir "/usr/local/redis" slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 requirepass "Hangzhou@123" appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes masterauth "Hangzhou@123" protected-mode yes slaveof 172.20.19.49 6379 |
依次启动redis
率先启动master redis 然后依次启动slave
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
防火墙添加6379规则
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
否则会出现如下错误
修改防火墙之后
cat >> /etc/sysctl.conf<<EOF
vm.overcommit_memory = 1
EOF
sysctl –p
分别重启redis
可以在/usr/local/redis/redis.log 中 看到2台机子连接成功的信息
也可以在redis中 添加key 测试是否会同步
在172.20.19.49上执行如下命令
在slave机子上执行如下操作,会看到slave 上有和master 一样的key 名,value也一致
配置sentinel 哨兵
配置master 172.20.19.49 的/usr/local/redis/sentinel.conf
protected-mode no sentinel deny-scripts-reconfig yes sentinel monitor mymaster 172.20.19.49 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 15000 sentinel auth-pass mymaster Hangzhou@123 # Generated by CONFIG REWRITE port 26379 dir "/usr/local/redis" sentinel config-epoch mymaster 1 sentinel leader-epoch mymaster 1 sentinel known-slave mymaster 172.20.19.98 6379 sentinel current-epoch 1 sentinel announce-ip "172.20.19.49" |
配置从slave 172.20.19.98 的/usr/local/redis/sentinel.conf
protected-mode no sentinel deny-scripts-reconfig yes sentinel monitor mymaster 172.20.19.49 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 15000 sentinel auth-pass mymaster Hangzhou@123 # Generated by CONFIG REWRITE port 26379 dir "/usr/local/redis" sentinel config-epoch mymaster 1 sentinel leader-epoch mymaster 1 sentinel known-slave mymaster 172.20.19.98 6379 sentinel current-epoch 1 sentinel announce-ip "172.20.19.49" |
完成配置之后 开启26379端口 依次启动哨兵sentinel
首先启动master 然后slave
/usr/local/redis/src/redis-sentinel /usr/local/redis/sentinel.conf &
启动完毕后可以用如下命令查看哨兵信息
redis-cli -p 26379 INFO Sentinel
测试杀死master redis 进程
查看日志 master 重新选举172.20.19.98为新master
再次查看哨兵信息 master 已经变化
重新启动172.20.19.49的redis 查看信息
master 并没有变回去 依旧是189为master
至此 redis集群和哨兵均安装测试完毕