《一》redis知识点总结

探讨Redis如何通过单线程模型实现高并发,并分析其在读写分离、主从架构下支持10万级别的并发能力。同时,深入讨论缓存雪崩与穿透现象,提出多种解决方案,包括集群可用性保障、限流降级、持久化机制及无效查询的处理。

【1】redis线程模型:单线程工作模型

【2】单线程怎么能支持高并发?

1.io多路复用的程序,非阻塞

2.基于内存的操作

3.单线程避免了多线程的频繁上下文切换问题

【3】redis不能支持高并发的瓶颈在哪里?单机

【4】若要支持10万的高并发,怎么办?读写分离   主从架构 master、slave

主从架构————>读写分离————>支持10万读写分离的架构

【5】redis缓存雪崩和穿透

缓存雪崩现象:缓存宕机、几千几万个请求直接访问数据库,数据库也宕机,导致整个服务也宕机。

【6】解决缓存雪崩:
1.保证集群的可用性(主从服务)

2.缓存不可用时,基于系统内部的缓存ehcache

3.限流加降级组件。hystrix限流,避免数据库被打死。或者降级访问友情提示页面等

4.redis持久化机制。尽快恢复缓存集群,一旦重启,自动从磁盘上加载数据恢复内存中的数据

【7】缓存穿透

缓存穿透是指查询一个不存在的key数据,由于缓存没命中需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,流量大时DB会挂掉,这也是经常提的缓存命中率问题

解决:

1.如果查询数据库也为空,直接设置一个默认值存放到缓存,这样第二次到缓冲中获取就有值了,而不会继续访问数据库

2.在控制层对要查询的key进行校验,不符合则丢弃,然后再放行给后面的正常缓存处理逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值