1、安装环境
集群机器 redis服务 哨兵(sentinel) 描述
虚拟机:10.202.107.207 redis服务端口6379 sentinel服务端口26379 主节点
虚拟机:10.202.107.208 redis服务端口6379 sentinel服务端口26379 从节点
虚拟机:10.202.107.209 redis服务端口6379 sentinel服务端口26379 从节点
即:3个redis服务(1主2从),3个sentinel服务
2、Redis安装(请参照Redis安装)
3、Redis主从配置
3.1、创建目录
mkdir conf
mkdir run
mkdir logs
mkdir data
mkdir sentinel
虚拟机:10.202.107.207 redis.conf配置文件:
daemonize yes
pidfile /usr/dev/redis/redis-4.0.1/run/redis.pid
port 6379
tcp-backlog 511
bind 10.202.107.207
timeout 180
tcp-keepalive 60
loglevel notice
logfile /usr/dev/redis/redis-4.0.1/logs/redis.log
databases 16
save 900 1
save 300 10
save 60 100
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename its_redis.rdb
dir /usr/dev/redis/redis-4.0.1/data
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 123456
maxclients 1000
maxmemory 4096mb
maxmemory-policy volatile-lru
maxmemory-samples 3
appendonly no
appendfilename its_redis.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 123456
虚拟机:10.202.107.208 redis.conf配置文件:
daemonize yes
pidfile /usr/dev/redis/redis-4.0.1/run/redis.pid
port 6379
tcp-backlog 511
bind 10.202.107.208
timeout 180
tcp-keepalive 60
loglevel notice
logfile /usr/dev/redis/redis-4.0.1/logs/redis.log
databases 16
save 900 1
save 300 10
save 60 100
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename its_redis.rdb
dir /usr/dev/redis/redis-4.0.1/data
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 123456
maxclients 1000
maxmemory 4096mb
maxmemory-policy volatile-lru
maxmemory-samples 3
appendonly no
appendfilename its_redis.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 123456
slaveof 10.202.107.207 6379
虚拟机:10.202.107.209 redis.conf配置文件:
daemonize yes
pidfile /usr/dev/redis/redis-4.0.1/run/redis.pid
port 6379
tcp-backlog 511
bind 10.202.107.209
timeout 180
tcp-keepalive 60
loglevel notice
logfile /usr/dev/redis/redis-4.0.1/logs/redis.log
databases 16
save 900 1
save 300 10
save 60 100
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename its_redis.rdb
dir /usr/dev/redis/redis-4.0.1/data
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 123456
maxclients 1000
maxmemory 4096mb
maxmemory-policy volatile-lru
maxmemory-samples 3
appendonly no
appendfilename its_redis.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 123456
slaveof 10.202.107.207 6379
相关命令:
1.查看redis进程
ps -ef|grep redis
2.启动redis server
./src/redis-server redis.conf
3.启动redis Client
./src/redis-cli -h 10.202.107.207 -p 6379 -a 123456
4.输入密码
10.202.107.207:6379> auth 123456
5.查看信息
info
查看主从关系
./src/redis-cli -h 10.202.107.207 -p 6379 -a 123456
10.202.107.207:6379> info replication
主从切换
主服务挂掉了后从执行,将从切换为主:
./src/redis-cli -p 6380 slaveof NO ONE
主恢复后从执行:
./src/redis-cli -p 6380 slaveof 10.202.107.207 6379
4、Sentinel主从配置
虚拟机:10.202.107.207 sentinel.conf配置文件:
# 守护进程模式,即后台模式
daemonize yes
port 26379
bind 10.202.107.207
sentinel monitor its_sentinel 10.202.107.207 6379 2#2表示在sentinel集群中只要有两个节点检测到redis主节点出故障就进行切换,单sentinel节点无效
#指定工作目录
dir "/usr/dev/redis/redis-4.0.1/sentinel"
pidfile "/usr/dev/redis/redis-4.0.1/run/sentinel.pid"
#日志级别
loglevel notice
logfile "/usr/dev/redis/redis-4.0.1/logs/sentinel.log"
#如果6秒后,master仍没活过来,则启动failover
sentinel failover-timeout its_sentinel 60000
#redis主节点密码
sentinel auth-pass its_sentinel 123456
#选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就
sentinel config-epoch its_sentinel 0
sentinel leader-epoch its_sentinel 0
sentinel current-epoch 1
sentinel announce-ip "10.202.107.207"
虚拟机:10.202.107.208 sentinel.conf配置文件:
# 守护进程模式,即后台模式
daemonize yes
port 26379
bind 10.202.107.208
sentinel monitor its_sentinel 10.202.107.207 6379 2#2表示在sentinel集群中只要有两个节点检测到redis主节点出故障就进行切换,单sentinel节点无效
#指定工作目录
dir "/usr/dev/redis/redis-4.0.1/sentinel"
pidfile "/usr/dev/redis/redis-4.0.1/run/sentinel.pid"
#日志级别
loglevel notice
logfile "/usr/dev/redis/redis-4.0.1/logs/sentinel.log"
#如果6秒后,master仍没活过来,则启动failover
sentinel failover-timeout its_sentinel 60000
#redis主节点密码
sentinel auth-pass its_sentinel 123456
#选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就
sentinel config-epoch its_sentinel 0
sentinel leader-epoch its_sentinel 0
sentinel current-epoch 1
sentinel announce-ip "10.202.107.208"
虚拟机:10.202.107.209 sentinel.conf配置文件:
# 守护进程模式,即后台模式
daemonize yes
port 26379
bind 10.202.107.209
sentinel monitor its_sentinel 10.202.107.207 6379 2#2表示在sentinel集群中只要有两个节点检测到redis主节点出故障就进行切换,单sentinel节点无效
#指定工作目录
dir "/usr/dev/redis/redis-4.0.1/sentinel"
pidfile "/usr/dev/redis/redis-4.0.1/run/sentinel.pid"
#日志级别
loglevel notice
logfile "/usr/dev/redis/redis-4.0.1/logs/sentinel.log"
#如果6秒后,master仍没活过来,则启动failover
sentinel failover-timeout its_sentinel 60000
#redis主节点密码
sentinel auth-pass its_sentinel 123456
#选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就
sentinel config-epoch its_sentinel 0
sentinel leader-epoch its_sentinel 0
sentinel current-epoch 1
sentinel announce-ip "10.202.107.209"
启动sentinel服务: ./src/redis-sentinel ./conf/sentinel.conf