https://redis.io/docs/management/replication/
就是主从复制,master以写为主,Slave以读为主
当master数据变化的时候,自动将新的数据异步同步到其它slave数据库
基本操作命令
# 可以查看复制节点的主从关系和配置信息
info replication
# 一般写入进redis.conf配置文件内
replicaof 主库IP 主库端口
# 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件在运行期间修改slave节点的信息
# 如果该数据库已经是某个主数据库的从数据库,那么会停止和原主数据库的同步关系转而和新的主数据库同步,重新拜码头
slaveof 主库IP 主库端口
# 使当前数据库停止与其他数据库的同步,转成主数据库,自立为王
slaveof no one
# 开启daemonize yes
# 注释掉bind 127.0.0.1
# protected-mode no
# 指定端口port 6379
# 指定当前工作目录,dir
# pid文件名字,pidfile
# log文件名字,logfile
# 密码requirepass
# dump.rdb名字dbfilename
# aof文件,appendfilename
# 从机访问主机的通行密码masterauth,必须 从机需要配置,主机不用
# 配置文件执行
replicaof 主库IP 主库端口
配置持久有效
命令临时有效
上一个slave可以是下一个slave的master,slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master可以有效减轻主master的写压力
中途变更转向:会清除之前的数据,重新建立拷贝最新的
slaveof 新主库IP 新主库端口
SLAVEOF no one
使当前数据库停止与其他数据库的同步,转成主数据库
存在的问题:由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。
挂了咋办