宝塔 liunx redis 设置读写分离主从复制 + 哨兵自动值守
1.主从概念
一个master可以拥有多个slave,一个slave又可以拥有多个slave。如此下去,形成了强大的多级服务器集群架构。
master用写数据,经统计:网站的读写比率是10:1
通过主从分离可以实现读写分离
master和slave都是一个redis实例(redis服务)
2.主从配置
## 主服务master ##
#1. 修改 master配置
进入你的redis安装目录 /www/server/redis/redis.conf
#2.修改bind为本机ip
bind your_ip
## 从服务slave配置 ##
#1.复制redis.conf 名为slave.conf
cp redis.conf slave.conf
#2.修改配置 修改bind为本机ip
bind your_ip
#3.更改端口 例如
port 6378
#4. 输入命令启动从服务 :
/www/server/redis/src/redis-server /etc/redis/slave.conf
#5. 更改slaveof(主从关系,因为刚添加的默认为主服务)
1. 输入命令:redis-cli -h 127.0.0.1 -p 6378
2. 输入命令:slaveof your_ip 6379 //进入6378把6379修改为主服务
3.然后查看主从关系:
redis-cli -h your_ip -p your_port info Replication
或者:
1. 执行命令:redis-cli -h 127.0.0.1 -p 6375
2. info Replication
4.Master节点设置key后异步同步到Slaver节点;Slaver节点只能读取数据,不能修改,从而形成了读写分离
5.使用哨兵模式,自动监视Master节点,当前主服务挂掉后,自动将Slaver节点变为Master节点
配置目录:/www/server/redis/sentinel.conf
#普通配置
#端口号
port 26379
#pid 文件
pidfile "/var/run/redis-sentinel2.pid"
#哨兵工作空间路径
dir /usr/local/redis/sentinel
#进程守护,允许后台运行
daemonize yes
#不开启模块保护,允许远程访问
protected-mode no
#日志存放位置
logfile "/www/server/redis/sentinel2.log"
#核心配置
# 配置哨兵,mymaster随意,至少给主节点定的昵称,注意配置一致即可
# 1表示配置哨兵,有1个哨兵作出决策,就有决策权
sentinel monitor mymaster 127.0.0.1 6379 1
# 密码
sentinel auth-pass <master-name> <password>
# master被sentinel认定为失效的间隔时间
sentinel down-after-milliseconds mymaster 30000
# 剩余的slaves重新和新的master做同步的并行个数
sentinel parallel-syncs mymaster 1
# 主备切换的超时时间,哨兵要去做故障转移,这个时候哨兵也是一个进程,如果他没有去执行,超过这个时间后,会由其他的哨兵来处理
sentinel failover-timeout mymaster 180000
6.执行命令启动哨兵:
/www/server/redis/src/redis-sentinel /www/server/redis/sentinel.conf
7.查看是否启动:
ps -ef|grep redis
8.然后手动杀死 6379 主服务:
kill -9 839513(你自己的进程id)
9. 1分钟或者几十秒后,接下来我们查看哨兵日志,选了从服务6377为主服务了
再执行命令查看:
redis-cli -h 127.0.0.1 -p 6375 info Replication
总结
- Master可读可写,Slaver只能读,不能写
- Master可以对应多个Slaver,但是数量越多压力越大,延迟就可能越严重
- Master写入后立即返回,几乎同时将写入异步同步到各个Slaver,所以基本上延迟可以忽略
- 可以通过slaveof no one命令将Slaver升级为Master(当Master挂掉时,手动将某个Slaver变为Master)
- 可以通过sentinel哨兵模式监控Master,当Master挂掉时自动选举Slaver变为Master,其它Slaver自动重连新的Master
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: