原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://navyaijm.blog.51cto.com/4647068/1745569
1
2
3
4
5
6
7
8
|
#redis
100.10.32.54:6400 主库
100.10.32.55:6400 从库
100.10.32.250 VIP
#sentinel
100.10.32.54:26400 sentinel 本地节点
100.10.32.55:26400 sentinel 本地节点
100.10.32.57:26400 sentinel 仲裁节点
|
1
|
yum -y
install
redis
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
vim
/etc/redis_6400
.conf
daemonize
yes
pidfile
"/var/run/redis_6400.pid"
port 6400
tcp-backlog 65535
bind 0.0.0.0
timeout 0
tcp-keepalive 0
loglevel notice
logfile
"/var/log/redis/redis_6400.log"
maxmemory 8gb
maxmemory-policy allkeys-lru
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
"/data/redis/6400"
slave-serve-stale-data
yes
slave-
read
-only
yes
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename
"appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-
time
-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
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
|
1
2
3
4
5
6
7
8
9
10
11
|
vim
/etc/redis-sentinel6400
.conf
daemonize
yes
port 26400
dir
"/data/redis/redis_sentinels"
pidfile
"/var/run/redis/sentinel6400.pid"
logfile
"/data/redis/redis_sentinels/sentinel6400.log"
sentinel monitor master6400 100.10.32.54 6400 2
sentinel down-after-milliseconds master6400 6000
sentinel failover-timeout master6400 18000
sentinel client-reconfig-script master6400
/opt/notify_master6400
.sh
##仲裁节点无需添加这行配置,client-reconfig-script参数是在sentinel做failover的过程中调用脚本漂vip到新的master上
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
vim
/opt/notify_master6400
.sh
#!/bin/bash
MASTER_IP=$6
LOCAL_IP=
'100.10.32.54'
#从库修改为100.10.32.55
VIP=
'100.10.32.250'
NETMASK=
'24'
INTERFACE=
'eth0'
if
[ ${MASTER_IP} = ${LOCAL_IP} ];
then
/sbin/ip
addr add ${VIP}/${NETMASK} dev ${INTERFACE}
/sbin/arping
-q -c 3 -A ${VIP} -I ${INTERFACE}
exit
0
else
/sbin/ip
addr del ${VIP}/${NETMASK} dev ${INTERFACE}
exit
0
fi
exit
1
|
1
|
chmod
+x
/opt/notify_master6400
.sh
#赋予可执行权限
|
1
|
redis-server
/etc/redis_6400
.conf
|
1
|
redis-cli -p 6400 slaveof 10.10.32.54 6400
|
1
|
/sbin/ip
addr add 100.10.32.250
/24
dev eth0
|
1
|
redis-server
/etc/redis-sentinel6400
.conf --sentinel
|
1
2
3
4
5
6
7
8
9
10
|
[root@localhost tmp]
# redis-cli -h 100.10.32.54 -p 6400 info Replication
# Replication
role:master
connected_slaves:1
slave0:ip=100.10.32.55,port=6400,state=online,offset=72669,lag=1
master_repl_offset:72669
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:72668
|
1
2
3
4
5
6
7
|
[root@localhost tmp]
# redis-cli -h 100.10.32.54 -p 26400 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=master6400,status=ok,address=100.10.32.54:6400,slaves=1,sentinels=3
|
1
2
3
4
|
[root@localhost tmp]
# ip a |grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
inet 100.10.32.54
/24
brd 100.10.32.255 scope global eth0
inet 100.10.32.250
/24
scope global secondary eth0
|
1
|
redis-cli -h 100.10.32.54 -p 6400
shutdown
|
1
2
3
4
5
6
7
8
9
|
[root@localhost tmp]
# redis-cli -h 100.10.32.55 -p 6400 info Replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
|
1
2
3
4
|
[root@localhost tmp]
# ip a |grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
inet 100.10.32.55
/24
brd 100.10.32.255 scope global eth0
inet 100.10.32.250
/24
scope global secondary eth0
|
1
2
3
4
5
6
7
|
[root@localhost tmp]
# redis-cli -p 26400 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=master6400,status=ok,address=100.10.32.55:6400,slaves=1,sentinels=3
|