Redis一主多从哨兵模式
1、两台主机IP地址如下:
主: 192.168.3.81 端口:6379
从:192.168.3.82 端口:6379
从:192.168.3.82 端口:6380
2、首先建立Redis数据存储目录
mkdir /var/lib/data/
3、master(6379端口)Redis配置文件设置
vim /etc/redis-6379.conf
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis/redis_6379.log
databases 16 save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump_6379.rdb
dir /var/lib/data masterauth 123456
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 lian919 appendonly yes
appendfilename "appendonly_6379.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-size -2
list-compress-depth 0
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
3、slave(6379端口)配置文件设置
vim /etc/redis-6379.conf
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis/redis_6379.log
databases 16 save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump_6379.rdb
dir /var/lib/data slaveof 192.168.3.81 6379
masterauth 123456
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 appendonly yes
appendfilename "appendonly_6379.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-size -2
list-compress-depth 0
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
4、slave(6380端口)配置文件设置
vim /etc/redis-6380.conf
bind 0.0.0.0
protected-mode yes
port 6380
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6380.pid
loglevel notice
logfile /var/log/redis/redis_6380.log
databases 16 save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump_6380.rdb
dir /var/lib/data slaveof 192.168.3.81 6379
masterauth 123456
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 appendonly yes
appendfilename "appendonly_6380.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-size -2
list-compress-depth 0
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
注:关于配置文件说明查看:https://www.cnblogs.com/albert919/p/16511082.html
5、启动Redis主和从,启动命令如下
redis主启动命令:
redis-server /etc/redis-6379.conf
redis从(注:6379和6380端口)启动命令
redis-server /etc/redis-6379.conf redis-server /etc/redis-6380.conf
6、查看redis是否启动成功命令
ps -ef |grep redis
注:如果有redis启动进程说明启动成功
7、查看从库连接主库是否成功。查看命令使用进入redis交互模式输入 info replication:查看如同示例
注:redis主从复制故障恢复
1、redis主库主库出现故障后,直接把从库切换为主库命令为
slaveof no one
2、redis如果是一主多从的情况,主库出现故障后,把其中一台从库切换为主库后。其它从库需要重新建立的的主从关系
slaveof 切换新的主库IP地址 切换新的主库端口
二、 哨兵模式配置
设置3个哨兵模式监控redis主从,如果redis主库宕机,至少两个哨兵节点同意才能切换。
3个哨兵分别建立在redis主从上面,redis主架设哨兵1,redis从架设哨兵2,哨兵3
1、哨兵模式端口分别为:
1、redis主哨兵(IP:192.168.3.81):
哨兵1端口:26379 (注:配置文件默认端口就是26379)
2、redis从哨兵(IP: 192.168.3.82)
哨兵2端口:26379
哨兵3端口:26380
2、redis主哨兵(192.168.3.81)26379端口配置文件如下:
vim /etc/redis-sentinel-26379.conf
port 26379 protected-mode no daemonize yes dir /var/lib/data logfile /var/log/redis/sentinel_26379.log sentinel monitor mymaster 192.168.3.81 6379 2 sentinel auth-pass mymaster 123456 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000
3、redis从哨兵(IP:192.168.3.82)26379端口配置文件
vim /etc/redis-sentinel-26379.conf
port 26379 protected-mode no daemonize yes dir /var/lib/data logfile /var/log/redis/sentinel_26379.log sentinel monitor mymaster 192.168.3.81 6379 2 sentinel auth-pass mymaster 123456 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000
redis从哨兵(IP:192.168.3.82)26380端口配置文件
vim /etc/redis-sentinel-26380.conf
port 26380 protected-mode no daemonize yes dir /var/lib/data logfile /var/log/redis/sentinel_26380.log sentinel monitor mymaster 192.168.3.81 6379 2 sentinel auth-pass mymaster 123456 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000
注:
1、sentinel monitor mymaster 192.168.3.81 6379 2
monitor:代表监控
mymaster:设置的别名,这个别名可以根据自己进行修改
192.168.3.81 6379:192.168.3.81:代表的是redis主IP地址 6379:代表的是redis主端口
2:判断redis主节点失败至少需要2个Sentinel节点同意切换
2、关于配置文件说明访问:https://www.cnblogs.com/albert919/p/16511082.html
4、哨兵启动命令
26379端口哨兵启动命令:
redis-sentinel /etc/redis-sentinel-26379.conf
26380端口哨兵启动命令
redis-sentinel /etc/redis-sentinel-26380.conf
5、查看哨兵连接状态
redis-cli -p 26379 info sentinel
master0:name=mymaster,status=ok,address=192.168.3.81:6379,slaves=2,sentinels=3 红色方框内容说明
name=mymaster #这里的mymaster显示是配置文件里面sentinel monitor mymaster 192.168.3.81 6379 2 这里的mymaster设置
status=ok #连接状态
address=192.168.3.81:6379 #哨兵监控redis主ip地址和端口
slaves=2 #这里显示有两个redis从节点
sentinels=3 #这里代表有3个哨兵节点
最新文章
- Apache Ignite高性能分布式网格框架-初探
- sublime text3 常用插件安装
- vbs外部调用
- 关于WPF程序只运行一个实例的方法
- Linux Shell查看磁盘分区,内存使用,CPU使用率
- KP 佛学禅语
- 基于B/S模式的推送
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- C文件操作的语言fgets()
- SVN目录对号图标(更新、冲突)不显示
- [转]Firefox拦截12306订票网站的解决办法
- PHP5.6+7代码性能加速-开启Zend OPcache-优化CPU
- 改造kindeditor支持asp.net core mvc上传文件
- 【题解】Luogu P4344 [SHOI2015]脑洞治疗仪
- Django创建超级用户出现错误
- ZooKeeper单机伪集群搭建与启动
- 读jQuery源码释疑笔记
- php 把一个一维数组的值依次赋值到二维数组中的每一项
- 【Thinking in Java】读书笔记
- nfs的优化
热门文章
- Python实验报告(第10章)
- @LoadBalanced注解原理
- [OpenCV实战]51 基于OpenCV实现图像极坐标变换与逆变换
- RocketMQ Compaction Topic的设计与实现
- vulnhub靶场之IA: KEYRING (1.0.1)
- R语言|ggplot2| 绘制KEGG气泡图
- node.js接收前端上传的文件并保存到其他位置+后端代码支持进度条
- 迁移学习(DIFEX)《Domain-invariant Feature Exploration for Domain Generalization》
- Java入门与进阶 P-1.9+P-1.10
- 花1分钟配置远程DEBUG,开发效率翻倍,妹子直呼绝绝子