大家好,又见面了,我是你们的朋友全栈君。
Redis集群搭建——主从模式
前言
一般情况下,为了减轻数据库的访问压力,我们会把热点数据保存在内存中而不是直接从后端数据库中读取。Redis虽然是一个极其优秀的非关系型数据库,但是在大型网站应用,热点数据的并发访问量达到百万千万是很正常的,这个时候单个redis就不能够保证数据量的访问和存储。这个时候我们就可以搭建redis集群,可以保证数据的分散存储与数据的一致性,实现redis的高可用,发生故障时保证程序的正常运行与数据的保存。
Redis有几种集群模式,每种模式都有它各自的特点,下面将介绍redis的集群搭建模式之一:主从模式。
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是主从模式?
redis的主从模式(master-slave)简单理解就是,一个主人(master)对应了多个仆从(slave),主节点负责对数据的写操作,从节点负责对数据进行写操作。
二、主从模式集群的搭建案例
1.创建新的目录存放redis.conf
1.打开redis安装目录,新建目录
mikdir master-cluster
2. 把redis配置文件复制到新建目录,我的是master-slave
cp redis.conf redis安装目录/master-slave
2.进入master-slave目录,修改redis.conf文件端口,关闭AOF,如果开启了自动RDB,需要修改对应配置文件快照保存文件的文件名,不会请参照:Redis的两种持久化方式及其优缺点
vi redis.conf
3.再复制两个配置文件,修改对应的端口为7002,7003(如上)
cp redis.conf redis01.conf
cp redis.conf redis02.conf
4.启动redis时指定上面的三个配置文件
redis-server redis.conf
redis-server redis02.conf
redis-server redis03.conf
5.连接redis
redis-cli -h 127.0.0.1 -p 7001
6 查看当前redis状态,role为master
info replication
退出:
exit
5 配置主从,配从不配主
连接7002,我们在7002和7003使用 slaveof 127.0.0.1 7001 把7002和7003挂载7001上
6.查看状态
配置成功
三、主从模式的优缺点
优点:
1.Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
2. Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
3.为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。
4.Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。
5.支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
缺点:
1.Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
2.主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。
3.Redis的主从复制采用全量复制,复制过程中主机会fork出一个子进程对内存做一份快照,并将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够多的空余内存。若快照文件较大,对集群的服务能力会产生较大的影响,而且复制过程是在从机新加入集群或者从机和主机网络断开重连时都会进行,也就是网络波动都会造成主机和从机间的一次全量的数据复制,这对实际的系统运营造成了不小的麻烦。
5.Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了主从模式的配置使用,想要更好的使用主从模式还需要我们更深入的学习。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127765.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...