redis读写分离
2020-07-06 本文已影响0人
裂开的汤圆
什么是读写分离
主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,master以写为主,slave以读为主
配置从机
配置从机的方式有两种,一种是通过slaveof命令进行配置,另一种是通过配置文件
1.使用slaveof命令配置当前机器为从机
slaveof 主机ip地址 主机redis端口号
slaveof 127.0.0.1 6379
2.通过配置文件配置当前主机为从机,在配置文件中添加如下内容
# 当本机为从机时,设置master服务的IP地址及端口,在redis启动时,它会自动从master进行数据同步
slaveof <masterip> <masterport>
# 当master服务设置了密码保护时,slav服务连接master的密码
masterauth <master-password>
# 设置master连接密码,slave可省略
requirepass 123456
当配置从机后,从机会从主机中复制所有的数据(全量复制)。
从机为只读权限,无法写入
哨兵模式(sentinel)
当未配置哨兵时,主机挂掉,所有从机任然保持从机的身份,而不会自动选取一个成为主机。主机恢复后,从机将会自动连接上主机(心跳机制)。
当配置哨兵后,主机挂掉,从机进行投票,票数最多的自动成为主机。当原主机恢复后,会接入到现有的主从关系中,自动成为从机
如何开启哨兵模式
- 1.新建一个sentinel.conf文件
- 2.在该配置文件中添加如下内容
daemonize yes
logfile "/usr/local/redis/sentinel.log"
dir "/usr/local/redis/sentinel" #sentinel工作目录
sentinel monitor mymaster 192.168.30.128 6379 2 #判断master失效至少需要2个sentinel同意,建议设置为n/2+1,n为sentinel个数
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000 #判断master主观下线时间,默认30s
- 3.使用命令启动哨兵,redis-sentinel sentinel.conf