redis缓存问题

文章探讨了缓存系统中常见的问题,包括缓存一致性导致的数据不一致,缓存击穿时的高并发对数据库压力,缓存穿透造成的无效查询,以及缓存雪崩可能导致的系统崩溃。提出的解决方案包括在Redis中存储短暂的null值、使用分布式锁、应用布隆过滤器和设计防止大量数据同时失效的策略,以及利用Redis集群提高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓存一致性的问题: 数据库和缓存有可能数据不一致(数据库写操作,缓存可能不一致)

缓存击穿的问题:

什么叫缓存击穿: 高并发查询一个key值,redis不存在数据,高并发涌入数据库.

        解决方案:

                简单处理方法: redis存储一个短时间的null值

                复杂处理办法: redis分布式锁

缓存穿透的问题:

什么叫缓存穿透: 访问了一个不存在的数据,redis没有,数据库没有

        解决方案:

                处理方法: 布隆过滤器(100%判断不存在),提前将全量数据存放到布隆过滤器 set(影响redis处理数据吞吐量,不是布隆的底层实现原理)

缓存雪崩的问题:

什么叫雪崩: 本来缓存承受的吞吐压力,由于缓存失效,导致数据库承受,造成宕机

        原因:1 缓存大量数据同一时间失效

                解决方案: 失效时间随机,不让数据同时失效

                解决方案: 引入逻辑超时(redis没有超时,提前一个临界点),处理起来非常复杂

        原因:2 redis节点宕机

                解决方案: redis自带集群高可用结构,由运维开发工程师 维护管理.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值