文章目录
Redis单节点有什么问题?
- 单点故障
- 容量有限
- 承受压力有限
Redis集群搭建原则
AKF 扩展立方、CAP 原则
准备工作
- 使用 /root/soft/redis-5.0.5/utils 下的 install_server.sh 安装6379、6380、6381 这3个服务
- 复制 /etc/redis/ 下的配置文件到 test 目录
- 修改配置文件
- daemonize no //前台运行
- appendonly no //禁用aof
- #logfile /var/log/redis_6379.log //禁用日志文件,让日志输出来控制台
- 删除 /var/lib/redis 目录下的持久化文件,文件夹保留
- 启动 6379、6380、6381 三个实例 redis-server ~/test/6379.conf
- 启动 3 个对应端口的客户端 redis-cli -p 6379
主从
主备和主从区别是什么
主备:客户端只访问主,主挂了,备顶上。
主从:客户端同时访问主和从,可以配置从只读或者读写
主从复制搭建
- replicaof localhost 6379 // Redis 5.0以后使用 replicaof 追随
- 同步时,主会生成rdb文件全量同步给slave
191:M 18 Apr 2020 09:31:12.823 * Starting BGSAVE for SYNC with target: disk 191:M 18 Apr 2020 09:31:12.823 * Background saving started by pid 374 374:C 18 Apr 2020 09:31:12.828 * DB saved on disk 374:C 18 Apr 2020 09:31:12.831 * RDB: 0 MB of memory used by copy-on-write 191:M 18 Apr 2020 09:31:12.923 * Background saving terminated with success 191:M 18 Apr 2020 09:31:12.923 * Synchronization with replica 127.0.0.1:6380 succeeded - 同步时slave会先清空自己的内容
256:S 18 Apr 2020 09:31:12.923 * MASTER <-> REPLICA sync: Flushing old data 256:S 18 Apr 2020 09:31:12.923 * MASTER <-> REPLICA sync: Loading DB in memory - 未开启 aof 时,slave 挂掉后,重新连回主,增量更新
191:M 18 Apr 2020 09:45:11.727 # Connection with replica 127.0.0.1:6381 lost. 191:M 18 Apr 2020 09:45:53.210 * Replica 127.0.0.1:6381 asks for synchronization 191:M 18 Apr 2020 09:45:53.211 * Partial resynchronization request from 127.0.0.1:6381 accepted. Sending 135 bytes of backlog starting from offset 1202. - 开启 aof 后,slave 挂掉后,重新连回主,全量更新
- 主挂了以后,slave 可使用 REPLICAOF no one 把自己变成主
配置文件中几个与主从复制相关的配置
#主从复制过程中 从是否支持查
replica-serve-stale-data yes
#从节点只支持读
replica-read-only yes
#默认先经常磁盘IO生成rdb文件,再走网络传输。大带宽时走直接走网络速度更快
repl-diskless-sync no
#增量复制
repl-backlog-size 1mb
#主至少需要几个从节点才能写入
min-replicas-to-write 3
#指定网络延迟的最大值
min-replicas-max-lag 10
现在虽然我们已经是主从集群了对吧,但是主节点还是一个单节点,不能保证高可用。如果主挂了就凉凉了。我们总不能每次手动让从顶上去当主吧。Redis也想到了这点。Redis中可以使用哨兵来监控主的健康状态。

哨兵
新建哨兵配置文件
[root@d3c5a983ba7b test]# vi 26379.conf
[root@d3c5a983ba7b test]# cat 26379.conf
port 26379
sentinel monitor mymaster 127.0.0.1 6379 2
拷贝 2 份,端口分别为 26380,26381,修改文件内端口号
[root@d3c5a983ba7b test]# cp 26379.conf 26380.conf
[root@d3c5a983ba7b test]# cp 26379.conf 26381.conf
[root@d3c5a983ba7b test]# vi 26380.conf
[root@d3c5a983ba7b test]# vi 26381.conf
[root@d3c5a983ba7b test]# cat 26380.conf
port 26380
sentinel monitor mymaster 127.0.0.1 6379 2
[root@d3c5a983ba7b test]# cat 26381.conf
port 26381
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel monitor mymaster 127.0.0.1 6379 2
这行配置指示 Sentinel 去监视一个名为 mymaster 的主服务器, 这个主服务器的 IP 地址为 127.

最低0.47元/天 解锁文章
1556

被折叠的 条评论
为什么被折叠?



