哨兵架构存在的一些缺陷:
1. 瞬断问题,哨兵架构中,当主节点挂断后需要选举,然后切换,中间有几秒到几十秒的服务暂停时间
2. 高并发受限问题,哨兵对外只有一个节点提供写服务,一台就几w的QPS。
3. 单个节点的内存不能设置过大,也就10G左右,否者导致持久化文件过大,影响数据恢复和主从同步效率。
Redis集群架构可以解决上面提到的问题,
redis集群是有多个主从节点小群组成的分布式服务器集群
特点: 复制,高可用,分片特性,没有中心节点,可水平扩容。官网称可以支持上万个节点(推荐不超过1000),配置简单。
瞬断的问题还是没有彻底解决,如果刚好要访问的哪个key所在的小集群挂了,也会等待那个小集群选举并重新起来。但是对于位于其他集群的key服务是可以正常服务。
下面为了简便,搭建的时候是一主一从,不是上面的一主2从的结构。
reids高可用集群的搭建:
1. 根据已经安装好redis的机器,通过虚拟机克隆3台机器出来
2. 设置3台机器的ip地址分别为192.168.0.101,192.168.0.102,192.168.0.103
配置网络的教程:https://blog.csdn.net/pengweismile/article/details/112910138
3. 分别在3台机器上做以下配置,
3.1 新建目录,修改配置文件
cd /home/allen/packages/redis-5.0.3/
mkdir redis-cluster
cd redis-cluster
mkdir 8001 8004
cp /home/allen/packages/redis-5.0.3/conf/redis.config 8001
cp /home/allen/packages/redis-5.0.3/conf/redis.config 8004
vi 8001/redis.config
3.2 在redis.config文件中配置如下信息,最主要的是下面的加粗字段:
port 8001
protected-mode no
daemonize yes
pidfile "/var/run/redis_8001.pid"
logfile "8001.log"
dir "/home/allen/packages/redis-5.0.3/8001"
masterauth allen
replica-read-only yes
requirepass allen
appendonly yes
appendfilename "appendonly.aof"
cluster-enabled yes
cluster-config-file nodes-8001.conf
cluster-node-timeout 10000
4.在各个机器的redis-