Redis架构设计及实践

目录

核心知识点

Redis主从架构

Redis哨兵机制

Redis集群高可用

Jedis应用集群的API

SpringBoot如何配置集群

 SpringBoot如何应用lettuce连接池


核心知识点

Redis主从架构

特点:薪火相传(从节点下还可以有从节点),一主多从

原理:在slave第一次生成时,会做全局同步,向master发送basave指令,将master中的全部数据复制下来,使用到rdb文件进行数据的传递,此操作是异步的,但是slave拿到数据后加载数据是需要使用到slave的线程

此后的master数据发生改变是,redis向mater写一条数据,也会同时向slave写入相同的数据,这种叫做增量同步

优势:读写分离,Master负责读写,Slave只负责读,数据同步的过程是异步的,不影响数据库的性能,对于查询次数较多的数据,可承受瞬间高并发的请求

劣势:主数据库宕机就不能写数据了,只能读数据

Redis哨兵机制

特点:反客为主

在这里插入图片描述

简介:哨兵模式是在主从结构下,为了实现数据库的高可用,而采用的一种机制,由一个或多个sentinel实例组成的sennrinel系统监控多个主服务器,以及这些主服务器下的从服务器,并在被监视的主服务器宕机是,随机选取该主服务器下的从服务器作为主服务器,继续执行redis发送的读写请求

工作原理:

sentinel会每秒向主服务器发送ping请求,当一段时间内没有收到回复时,默认30s,这个时间我们也可以自己定义,会将主服务器标记为主观下线

此时所有的sentinel都会每秒向此服务器发送ping,当足够数量的sentinel(大于或等于配置文件中配置的数量)都将此服务器标记为主观下线,此时此服务器就会由主观下线进入客观下线状态

一般情况下,sentinel每10秒向master和slave发送一次info,当主服务器被标记为客观下线状态,就会每秒向master和slave发送info

如果没有足够多的sentinel同意master下线,master的客观下线就会被移除

如果master重新向sentinel的ping指令发送有效回复,master的主观下线状态就会被移除

哨兵模式的优势:实现了主从架构的高可用

缺点:只有一个主服务器负责读写,大量的请求瞬间并发,一个master服务器是不能撑得起这样的并发,会导致内存不足

Redis集群高可用

一般情况下,Redis集群至少设置6个节点,由3个master和3个slave组成

在这里插入图片描述

Redis集群模式实现了Redis的高可用,横向扩容,也就是可以配置n个主节点,每个节点储存总数据的1/n,即使其中的一个master不可用,也不会影响redis的读写服务

Redis会采用槽位机制将数据进行计算后放在合适的位置,如果该位置有数据,会采用链表方式将数据追加到后面

Jedis应用集群的API

JedisCluster

SpringBoot如何配置集群

yml文件

Spring:

        redis:

                node:

 SpringBoot如何应用lettuce连接池

添加common-pool2依赖,在配置文件进行配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值