1. 软件版本及下载
Keepalived: https://www.keepalived.org/download.html
Redis下载地址:https://redis.io/download/
本次安装版本:
Redis:7.0.5
Keepalived:2.2.7
2. 主机优化
2.1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.2. 关闭安全加固(SELinux)
setenforce 0
将/etc/selinux/config文件中的SELINUX=enabled修改为SELINUX=disabled
2.3. 配置虚拟内存使用策略
vi /etc/sysctl.conf
vm.swappiness=1
vm.overcommit_memory = 1
--生效
sysctl -p
说明:这块先温和些,暂不disable。目前最新的联机文档是6.2,建议disable swap
From 6.2文档
Swap space is used by the Linux OS to help manage memory (pages) by copying pages from RAM to disk and the OS is configured by default to be fairly aggressive. For Redis Enterprise Software (RS) with the way it utilizes and manages memory, it is best to eliminate the likelihood of the OS swapping. If you would like to understand why, please read more on memory limits for best functionality and performance. The formal recommendation is to disable Linux swap completely in the OS.
2.4. 设置文件句柄
vi /etc/security/limits.conf
redis soft nofile 100240
redis hard nofile 100240
2.5. 关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
2.6. 检查服务器时间时区
[root@rac19c1 ~]# timedatectl status
Local time: 三 2022-11-23 23:23:04 CST
Universal time: 三 2022-11-23 15:23:04 UTC
RTC time: 三 2022-11-23 15:23:04
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a`
3. Redis单实例部署
3.1. 创建用户和环境变量
groupadd -g 1300 redis
useradd -u 1300 -g redis redis
echo "redis"|passwd redis –stdin
3.2. 解压缩并安装
mkdir /redis
tar zxf redis-7.0.5.tar.gz -C /redis
cd redis-7.0.5/
make
这个地方,变化下,以后可以放到/use/local/redis下
3.3. 配置参数文件
//注意,requirepass表示密码,根据实际情况替换
mkdir /redis/redis_6379
vi /redis/redis_6379/redis_6379.conf
bind 0.0.0.0
daemonize yes
port 6379
tcp-backlog 1024
timeout 300
tcp-keepalive 300
databases 16
requirepass 123456
pidfile "/redis/redis_6379/redis.pid"
loglevel notice
logfile "/redis/redis_6379/redis.log"
dbfilename "dump.rdb"
dir "/redis/redis_6379"
maxclients 100000
maxmemory 162144kb
maxmemory-policy allkeys-lru
save 900 10
save 300 10
save 60 10000
slave-read-only yes
slave-serve-stale-data yes
repl-disable-tcp-nodelay no
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
aof-load-truncated yes
no-appendfsync-on-rewrite no
aof-rewrite-incremental-fsync yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 4mb
3.4. 创建并修改目录和文件权限
chown -R redis.redis /redis
3.5. 修改密码
Redis默认是没有提供密码的,通过修改配置文件可以打开访问控制,我们自定的参数文件中将密码认证注释掉了,
[root@rac19c2 redis]# cat redis_6379/redis_6379.conf |grep requirepass
#requirepass 123456
3.6. 数据库启动
su - redis
/redis/redis-7.0.5/src/redis-server /redis/redis_6379/redis_6379.conf
4. 搭建Redis主从复制
4.1. 安装redis
Ø 同一台主机部署:
按照2中单实例方式安装,但要注意这几点:
(1)部署在同一台机器上,端口不能相同,并且二进制目录可以公用,配置dir参数和配置文件不同即可
(2)主库先安装,从库redis增加参数
slaveof 127.0.0.1 6379
- 批量替换配置文件端口信息:
- %s#6379#6380#g
Ø 不同主机部署:
按照2中单实例方式安装软件。从库redis增加参数
##设置requirepass和 masterauth前,先检查这2个参数是否设置
requirepass 123456
masterauth 123456
## 从redis 5起,建议使用replicaof
replicaof IP 6379
如:replicaof 10.10.10.241 6379
设置完后,重启redis
4.2. 主从验证
/redis/redis-7.0.5/src/redis-cli
auth 123456
info
主库输出:
# Replication
role:master
connected_slaves:1
slave0:ip=10.10.10.242,port=6379,state=online,offset=224,lag=1
master_failover_state:no-failover
master_replid:1a776c0ba2b19b2a207327f64958507e2b667cc2
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:224
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:224
备库输出:
# Replication
role:slave.
master_host:10.10.10.241
master_port:6379
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_read_repl_offset:98
slave_repl_offset:98
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:1a776c0ba2b19b2a207327f64958507e2b667cc2
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:98
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:98
4.3. Replication指标说明
主节点:
role:master:表明这是一个主节点
connected_slaves:1:当前有一个从节点
slave0:ip=10.10.10.242,port=6379,state=online,offset=224,lag=1: 显示了这个从节点的信息,如果有多个从服务,还会有salve1…等等的心思。很明显,这里显示了从节点的ip和端口,state表示从节点的当前的状态。offset用于数据同步,lag表示从节点“落后”了多少数据,lag=0表示主从结点的数据是一致的。
master_replid:1a776c0ba2b19b2a207327f64958507e2b667cc2:master的id值,用于唯一标记一个结点,从节点同步时会记住这个id,同步时会校验主结点的id是否匹配。
master_repl_offset:224:这是一个偏移量,主节点会将新写的数据缓存在一个队里里面,从节点同步时会保存当前同步的偏移量,从节点同步主节点数据时,会将主节点的id和上次保存的偏移量发送给主节点,主节点收到同步请求后,如果id和自己的id相同而且发送来的偏移量比自己记录的偏移小,说明新写的数据没同步,遍将N字节的数据和偏移量+N一并发送给从节点。从节点收到数据后,记住偏移量用于下一次同步使用
从节点:
role:slave:表明此节点是从服务
master_host:master:主节点ip,由于我使用的是docker,在docker实例中,我指定了主节点的hostname为master,而docker的user bridge网络类型为连在这个网络下的主从结点提供了自动DNS服务,所以我配置的master最终会被解析成主节点的ip
master_port:6379:主节点端口
master_replid:1a776c0ba2b19b2a207327f64958507e2b667cc2:主节点的id,注意看主节点的是一致的。
master_repl_offset:3883:偏移量,用于同步数据,同上。
5. Redis高可用
5.1. 高可用说明
5.2. Redis+keepalived配置
5.2.1.keepalived安装
[root@rac19c1 soft]# yum install curl gcc openssl-devel libnl3-devel net-snmp-devel
[root@rac19c1 soft]# tar -zxvf keepalived-2.2.7.tar.gz
[root@rac19c1 ~]# cd keepalived-2.2.7
[root@rac19c1 soft]# ./configure && make && make install
如果configure不加-C的话,默认的安装路径 /usr/local/etc/keepalived
[root@rac19c1 local]# keepalived -version
Keepalived v2.2.7 (01/16,2022)
Copyright(C) 2001-2022 Alexandre Cassen, <[email protected]>
Built with kernel headers for Linux 3.10.0
Running on Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020
Distro: CentOS Linux 7 (Core)
configure options:
Config options: LVS VRRP VRRP_AUTH VRRP_VMAC OLD_CHKSUM_COMPAT INIT=systemd
System options: VSYSLOG LIBNL3 RTA_ENCAP RTA_EXPIRES RTA_PREF FRA_SUPPRESS_PREFIXLEN FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK RTA_VIA IFA_FLAGS NET_LINUX_IF_H_COLLISION LIBIPTC_LINUX_NET_IF_H_COLLISION LIBIPVS_NETLINK IFLA_LINK_NETNSID GLOB_BRACE GLOB_ALTDIRFUNC INET6_ADDR_GEN_MODE SO_MARK
5.2.2.keepalived配置
cp keepalived.conf.sample keepalived.conf
conf配置文件里内容很多,可以只保留如下内容
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
route_id 19c1
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_redis {
script "/usr/local/etc/keepalived/scripts/redis-check.sh"
interval 2
# weight -10
fall 2
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 51
priority 100
# nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.10.240
}
track_script {
chk_redis
}
notify_master "/usr/local/etc/keepalived/scripts/redis-master.sh"
notify_backup "/usr/local/etc/keepalived/scripts/redis-backup.sh"
notify_fault "/usr/local/etc/keepalived/scripts/redis-backup.sh"
}
红色背景是相对于模版而言增加的。
以上是keepalived的master端配置,而backup端,需要调整如下:
route_id XXX #MASTER和BACKUP不同
virtual_router_id 51 #同一个实例下,MASTER和BACKUP相同
priority 100 #优先级,同一个实例下,MASTER高于BACKUP,备库这里改成了90
5.2.3.监控脚本配置
Ø redis-master.sh
#!/bin/bash
Redisclit="/redis/redis-7.0.5/src/redis-cli -a 123456"
logfile="/usr/local/etc/keepalived/scripts/redis_master_`date '+%Y%m%d%H'`.log"
echo "***************************`date`****[begin master]*****************************************" >> $logfile
ps -ef|grep redis-server >> $logfile
killall -0 redis-server
if [ $? == 1 ];then
echo "redis server is not running and begin to startup">>$logfile
su - redis -c "redis-server /redis/redis_6379/redis_6379.conf"
if [ $? == 1 ];then
echo "startup failed and exits script" >>$logfile
exit 1
fi
sleep 3
fi
$Redisclit ping
if [ $? == 1 ];then
echo "redis server is exists and ping is not success">>$logfile
echo "kill redis process and begin to startup ">>$logfile
killall -9 redis-server
su - redis -c "redis-server /redis/redis_6379/redis_6379.conf"
if [ $? == 1 ];then
echo "startup failed and exits script">>$logfile
exit 1
fi
fi
sync=`$Redisclit info replication|grep master_sync_in_progress|awk -F: '{print $2}'|sed 's/\r//'`
if [ $? == 1 ];then
echo "exec command is failed :$Rediscli info replication" >> $logfile 2>&1
exit 1
fi
echo $sync
echo "-------------------`date`---------------change to master-------------------" >> $logfile 2>&1
if [ $sync == 0 ]; then :
echo "the master_sync_in_progress is 0 and excute slaveof no one" >>$logfile 2>&1
$Redisclit slaveof no one
elif [ $sync == 1 ]; then :
sleep 10
$Redisclit slaveof no one
else
echo "the host is master,do nothing" >>$logfile
fi
echo "***************************`date`****[end master]*****************************************" >> $logfile
Ø redis-check.sh
#!/bin/sh
Rediscli="/redis/redis-7.0.5/src/redis-cli -a 123456"
logfile="/usr/local/etc/keepalived/scripts/redis_check_`date '+%Y%m%d%H'`.log"
echo "***************************`date`****[Begin Check Redis server]*****************************************" >> $logfile
killall -0 redis-server
if [ $? == 1 ];then
echo "Failed:Redis server is not startup ,so return 1 and keepalive will swich;" >> $logfile 2>&1
exit 1
fi
result=$($Rediscli ping)
if [ $? == 1 ];then
echo "Failed:the result is down " >> $logfile 2>&1
exit 1
else
echo $result
echo "-------------------redis-check-------------------" >> $logfile
if [ $result == "PONG" ]; then :
echo "Success: the result is $result" >> $logfile 2>&1
exit 0
else
echo "Failed:the result is $result " >> $logfile 2>&1
exit 1
fi
fi
echo "***************************`date`****[End Check Redis server]*****************************************" >> $logfile
Ø redis-backup.sh
#!/bin/bash
Ip="10.10.10.242"
Redisclit="/redis/redis-7.0.5/src/redis-cli -a 123456"
logfile="/usr/local/etc/keepalived/scripts/redis_backup_`date '+%Y%m%d%H'`.log"
echo "***************************`date`****[begin backup]*****************************************" >> $logfile
ps -ef|grep redis-server >> $logfile
result1=`killall -0 redis-server`
if [ $result1 == 1 ];then
echo "redis server is not running and begin to startup">>$logfile
su - redis -c "redis-server /redis/redis_6379/redis_6379.conf"
if [ $? == 1 ];then
echo "startup failed and exits script" >>$logfile
exit 1
fi
sleep 3
fi
result2=$($Redisclit ping)
if [ $? == 1 ];then
echo "redis server is exists and ping is not success">>$logfile
echo "kill redis process and begin to startup ">>$logfile
killall -9 redis-server
su - redis -c "redis-server /redis/redis_6379/redis_6379.conf"
if [ $? == 1 ];then
echo "startup failed and exits script">>$logfile
exit 1
fi
fi
echo "Being slave...." >>$logfile
sleep 10
echo "backup Run SLAVEOF cmd ...">> $logfile
$Redisclit slaveof $Ip 6379 >>$logfile
echo "***************************`date`****[end backup]*****************************************" >> $logfile
注意:Ip=“10.10.10.242”, 这个地方,主节点的脚本写备节点的ip,备节点的脚本写主节点的ip
5.2.4.Keepalived启动
[root@rac19c1 keepalived]# systemctl start keepalived
[root@rac19c1 keepalived]# ps -ef |grep keep
root 3474 1 0 23:43 ? 00:00:00 /usr/local/sbin/keepalived -D
root 3475 3474 0 23:43 ? 00:00:00 /usr/local/sbin/keepalived -D
root 3476 3474 0 23:43 ? 00:00:00 /usr/local/sbin/keepalived -D
root 3711 3201 0 23:44 pts/0 00:00:00 grep --color=auto keep
主节点
[root@rac19c1 keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2f:fb:1f brd ff:ff:ff:ff:ff:ff
inet 10.10.10.241/24 brd 10.10.10.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 192.168.200.16/32 scope global ens192
valid_lft forever preferred_lft forever
inet6 fe80::5439:4b14:deb2:ad3e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
备节点
[root@rac19c2 keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:49:23:b6 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.242/24 brd 10.10.10.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe49:23b6/64 scope link
valid_lft forever preferred_lft forever
5.2.5.Keepalived conf说明
参考:https://www.cnblogs.com/coprince/p/6738710.html
5.3. Redis+keepalived模拟切换
5.3.1.切换前检查
主节点:
[redis@rac19c1 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2f:fb:1f brd ff:ff:ff:ff:ff:ff
inet 10.10.10.241/24 brd 10.10.10.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 10.10.10.240/32 scope global ens192
valid_lft forever preferred_lft forever
inet6 fe80::5439:4b14:deb2:ad3e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2f:fb:29 brd ff:ff:ff:ff:ff:ff
inet 10.10.11.241/24 brd 10.10.11.255 scope global noprefixroute ens224
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe2f:fb29/64 scope link
valid_lft forever preferred_lft forever
[redis@rac19c1 ~]$
[redis@rac19c1 ~]$ redis-cli -a 123456 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:1
slave0:ip=10.10.10.242,port=6379,state=online,offset=630,lag=0
master_failover_state:no-failover
master_replid:bf7b4abc2b9b3a0abc4bd7b38842b1f14088ad88
master_replid2:4866ba082edcf49e4dc18c6f6bd679a6a735bf62
master_repl_offset:630
second_repl_offset:295
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:239
repl_backlog_histlen:392
可以看到主节点的vip和redis的role都正常,都是主角色。
备节点:
[redis@rac19c2 ~]$ redis-cli -a 123456 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:10.10.10.241
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_read_repl_offset:602
slave_repl_offset:602
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:bf7b4abc2b9b3a0abc4bd7b38842b1f14088ad88
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:602
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:295
repl_backlog_histlen:308
5.3.2.开始切换
本次采用kill 主节点redis进程方式,模拟数据库crash。
原主库:
[redis@rac19c1 ~]$
Nov 29 22:19:05 rac19c1 systemd: Removed slice User Slice of redis.
Nov 29 22:19:07 rac19c1 Keepalived_vrrp[11217]: Script `chk_redis` now returning 1
Nov 29 22:19:09 rac19c1 Keepalived_vrrp[11217]: VRRP_Script(chk_redis) failed (exited with status 1)
Nov 29 22:19:09 rac19c1 Keepalived_vrrp[11217]: (VI_1) Entering FAULT STATE
Nov 29 22:19:09 rac19c1 Keepalived_vrrp[11217]: (VI_1) sent 0 priority
Nov 29 22:19:09 rac19c1 Keepalived_vrrp[11217]: (VI_1) removing VIPs.
Nov 29 22:19:09 rac19c1 su: (to redis) root on none
Nov 29 22:19:09 rac19c1 systemd: Created slice User Slice of redis.
Nov 29 22:19:09 rac19c1 systemd: Started Session c3 of user redis.
Nov 29 22:19:11 rac19c1 Keepalived_vrrp[11217]: Script `chk_redis` now returning 0
Nov 29 22:19:13 rac19c1 Keepalived_vrrp[11217]: VRRP_Script(chk_redis) succeeded
Nov 29 22:19:13 rac19c1 Keepalived_vrrp[11217]: (VI_1) Entering BACKUP STATE
可以看到,原主库OS message有这几个关键输出,redis状态检查失败->keepalived改为FAULT STATE,0 priority、remove vip、自定义脚本拉库、BACKUP STATE。
原备库:
[redis@rac19c2 ~]$
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: (VI_1) Backup received priority 0 advertisement
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: (VI_1) Backup received priority 0 advertisement
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: (VI_1) Receive advertisement timeout
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: (VI_1) Entering MASTER STATE
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: (VI_1) setting VIPs.
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: (VI_1) Sending/queueing gratuitous ARPs on ens192 for 10.10.10.240
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:21:57 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:22:01 rac19c2 systemd: Started Session 27 of user root.
Nov 30 06:22:02 rac19c2 Keepalived_vrrp[7975]: (VI_1) Sending/queueing gratuitous ARPs on ens192 for 10.10.10.240
Nov 30 06:22:02 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:22:02 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:22:02 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:22:02 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
Nov 30 06:22:02 rac19c2 Keepalived_vrrp[7975]: Sending gratuitous ARP on ens192 for 10.10.10.240
可以看到keepalived状态改为了master state, 并且有了VIP
5.3.3.切换后
新主节点:
[redis@rac19c2 ~]$ redis-cli -a 123456 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:1
slave0:ip=10.10.10.241,port=6379,state=online,offset=742,lag=0
master_failover_state:no-failover
master_replid:9c1a4ab55b26b80a640ff9f6543591846c997b39
master_replid2:bf7b4abc2b9b3a0abc4bd7b38842b1f14088ad88
master_repl_offset:756
second_repl_offset:687
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:295
repl_backlog_histlen:462
新备节点:
[redis@rac19c1 ~]$ redis-cli -a 123456 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:10.10.10.242
master_port:6379
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_read_repl_offset:714
slave_repl_offset:714
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:9c1a4ab55b26b80a640ff9f6543591846c997b39
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:714
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:687
repl_backlog_histlen:28
6. 附录
6.1 keepalve启动状态
keepalive所有主机都同时重启时,首先启动的服务器的会执行check脚本,如果此时返回为–1,当keepalive启动完成时,在执行check脚本,如果返回为0时,进入BACKUP状态
标签:00,20221129,redis,手册,6379,repl,master,logfile From: https://www.cnblogs.com/www-htz-pw/p/17025631.html