一、主从复制
1.先起3个redis实例,端口分别是6389、6380、6381
cd /root/soft/redis-6.2.6/utils
./install_server.sh
service redis 6381 stop
cp /etc/redis/* ./
vi 6379.conf
appendonly no
deamonize no
vi 6380
vi 6381同样操作
cd /var/lib/redis/
rm -rf ./*
mkdir 6379
mkdir 6380
mkdir 6381
redis-server ~/test/6379.conf
redis-server ~/test/6380.conf
redis-server ~/test/6381.conf
2.从机跟随主机
redis-cli -p 6380
replicaof localhost 6379
redis-cli -p 6381
replicaof localhost 6379
然后就可以实验在6379 set k1 ,然后在6380(或6381)中get k1
3.相关问题
(1)如果备机挂了,再启动,是直接同步全量?还是同步增量数据?(成本问题)
答案:如果开启了AOF,则增量,否则全量
(2)主机知道有几个丛机吗?
答案:知道
(3)相关命令和配置
replicaof no one 取消追随
replicaof 可以在配置文件里改
replica-serve-stale-data yes 就是同步期间,老的数据可不可以查
replia-read-only yes 从节点是否只能写
repl-diskless-sync no 指是先变成RDB文件传过去(no),还是直接传数据过去(yes)
repl-backlog-size 1mb redis内部队列同步大小
min-repliacas-to-write 3 最小写
min-repliacas-max-lag 10 最大间隔时间
二、哨兵
1.vi哨兵配置文件
cd ~/test
vi 26379.conf
port 26379
sentinel monitor mymaster 127.0.0.1 6379 2
cp 26379.conf 26380.conf
cp 26379.conf 26381.conf
2.开启哨兵
redis-server ~/test/26379.conf --sentinel
redis-server ~/test/26380.conf --sentinel
redis-server ~/test/26381.conf --sentinel
3.相关问题
(1)如果主挂了,sentinel会在从机里推选中新的主(有一定延迟)
(2)哨兵怎么知道别的哨兵?
答案:利用redis发布订阅,会有个_sentinel_:hello的通道
(3)这3个监控,到底是听1个的还是听2个的还是听3个的?
听2个的,过半决策。因此redis哨兵最好配置奇数个节点。
如果有写错的地方,欢迎大家指正,感谢!