Redis总结(九)redis集群-主从模式
模式一:主从模式
实现主从复制(Master-Slave Replication)的工作原理:Slave从节点服务启动并连接到Master之后,它将主动发送一个SYNC命令。Master服务主节点收到同步命令后将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave从节点服务在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master主节点继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。
如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
我们接下来开始部署测试:
首先我们将redis安装包copy出两份,一个当主节点,一个当从节点,如图:
首先先修改两个包的端口号:打开redis.windows.conf,修改一个port 6380 另一个 port 6381
主服务器主要修改:
port 6380
bind 127.0.0.1
从服务器修改:
port 6381
bind 127.0.0.1
slaveof 127.0.0.1 6380
masterauth <master-password> //如果有密码设置
我们首先启动主节点redis,如图:
再启动从节点redis,如图:
我们可以看出从节点redis启动后顺利连接主redis,从主节点的info中也可以看出:
从节点info信息:
然后我们在主节点执行写入命令:
在从节点查看是否同步成功:
可以看出来我们主节点写入的数据成功的同步到从节点。
这样我们的主从模式就配置成功了。
优点:
- 同一个Master可以同步多个Slaves。
- Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力
- Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
- 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。
- 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
缺点:
- 主从模式,从节点不支持写入,如果主节点宕机,这个集群就会失去写的能力,不具备自动容错和恢复功能。
- Redis的主从复制采用全量复制,复制过程中主机会fork出一个子进程对内存做一份快照,并将子进程的内存快照保存为文件发送给从机,比较消耗性能。
我们在正在项目中很少使用这种模式,因为这种模式的容错性太低,但是为什么还讲述这个模式,因为这个模式另外两个模式的基础。
上一篇: Java获取不到请求的真实IP
下一篇: redis集群
推荐阅读
-
redis 主从复制和哨兵模式(二)
-
基于Docker搭建Redis主从集群的实现
-
Redis集群模式下的redis-py-cluster方式读写测试
-
Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第九集-补充-之安装jdk】
-
荐 BAT高频面试系列:设计模式+Spring源码+MyBatis+SpringMVC多线程+MySQL+Redis+框架使用+数据结构算法答案和总结
-
Spring Boot(十三):整合Redis哨兵,集群模式实践
-
RedLock算法与Redis集群模式分布式锁使用(Integration)
-
Redis主从复制模式
-
Redis Cluster集群主从切换的踩坑与填坑
-
REDIS集群 基础知识总结