本文谈到的内容主要是以下几点:
- 如何部署Redis主从复制(一主二从)
- 一些关于主从的问题模拟和思考
- 主从复制原理和工作流程
前文
所谓主从复制,就是以其中一台机器作为 master,并且以写为主,其他从服务器(Slave)则是以读为主,达到读写分离的效果,以来提高系统性能。从服务器的数据全部从主服务中复制同步而来。
当 master 数据变化的时候,自动将新的数据异步同步到其他Slave数据库
redis 官方文档:redis.io
主从复制它解决了什么问题?
其实这很好说吗,读写分离、容灾备份、数据备份、水平扩容支撑高并发等等,其实也蛮多的,但是也有一些不足之处,后面就知道啦
一、相关命令
其实主从分离是真的很简单,就改几个配置项就完事啦,和单机的没啥区别
也就这一句话,配置从库,不配置主库,从库变更一下配置文件,或者是输入几行命令就可以,主库则不需要动,和单机一样。
关于权限:
- 如果主库设置了密码,则从机需要验证密码
- master 如果配置了 requirepass 参数,需要密码登陆
- 那么slave就要配置masterauth 来设置校验密码,否则的话,master会拒绝slave的访问请求
基本操作命令
info replication
: 可以查看复制节点的主从关系和配置信息replicaof 主库IP 主库端口
:一般写入redis.conf配置文件内slaveof 主库IP 主库端口
:每次与 master 断开之后,都需要重新连接,除非你配置进redis.conf 文件。- 在运行期间修改slave节点的信息,如果该数据库已经是某个主数据库的从数据库,那么会停止和原主数据的同步关系转而和新的主数据库库同步,重新建立联系。
slaveof no one
:使当前数据库停止与其他数据库的同步,转为主数据库.
二、部署架构
我有三台虚拟机,分别是
192.168.208.128
192.168.208.129
192.168.208.130
准备部署的架构图为: