接上文 常用中间件-OAuth2
1.主从复制
启动两个redis服务器。
修改第一个服务器地址
修改第二个redis
然后分别启动
redis-server.exe redis.windows.conf
)
查看当前服务器的主从状态,打开客户端:输入info replication
命令来查看当前的主从状态,可以看到默认的角色:master,从节点数量为0。
也就是说所有的服务器启动之后都是主节点状态,此时若想要让6002作为从节点通过一个命令即可。
replicaof 127.0.0.1 6001
可以看到输入命令后,查看6002redis服务器的状态,会将6001服务器作为主节点,而当前节点作为6001的从节点,并且角色也会变为slave
查看6001服务器状态,发现已经有了一个从节点
现在6001作为一个主机,6002作为一个从机出现。其中还有一个参数offset=224,即偏移量,这个偏移量反应的是从节点的同步情况。
测试:从主节点新增数据,查看是否会同步到从节点:
主服务器新增数据
用从节点写入一个数据,发现写入不了,即从节点只能读不能写。
若不想让6002作为6001的从节点,则需要输入slaveof no one
或者replicaof no one
即可
再启动一台6003的redis服务器。
修改redis.windows.conf文件中的port,改为6003,然后启动
进入6003服务,查看状态
将6003作为6001的从节点
当主节点关闭后,从节点依然可以读取数据:
这样一定程度能防止数据丢失。
但是这样每次用命令配置太麻烦,因此可以再配置文件中配置,添加replicaof 127.0.0.1 6001
,这样从服务器启动会自动连接到主服务器
先将6001,6002都关闭
然后开启6001,6002,6003,进入6001查看状态,有两个从节点
此时offset=140,添加一个数据后,offset变为225
除了作为Master的从节点外,还可以将其作为从节点的从节点,比如让6003作为6002的从节点:
先进入6003服务器,通过replicaof 127.0.0.1 6002
设置为6002的从节点
优点是减少了主节点的压力,缺点是整个链路出现问题,那么会导致后边的从节点无法及时同步。