首页 > 数据库 >redis缓存穿透

redis缓存穿透

时间:2024-11-03 18:17:05浏览次数:3  
标签:缓存 hash redis 布隆 查询 穿透 过滤器

什么是redis缓存穿透?

redis缓存穿透就是当服务器发送大量不存在的查询请求是?redis无法命中,导致大量请求打入数据库,然而数据库无法支持那么高的并发。

如何解决redis缓存穿透问题?

方案一:缓存空数据。

当发起请求查询不存在的数据时,redis缓存空数据,这样下次再次查询这个空数据时就会命中redis。

缺点:当再次存储相关数据进入数据库时,查询将会命中redis中的空数据。

方案二:

布隆过滤器:

首先缓存会预热布隆过滤器,布隆过滤器会通过三次hash算出三个不同的hash值然后在bitmap中将相应位置的值改为1,每次请求会先经过布隆过滤器,算出hash值上对应bitmap的值是否都是1.如果都为一。才去redis中查询。

缺点:会出现误判的情况。如下图

数组越长误判的可能性越低。

标签:缓存,hash,redis,布隆,查询,穿透,过滤器
From: https://blog.csdn.net/weixin_73328400/article/details/143468358

相关文章

  • redis的三种特殊数据类型
    Bitmap作用?Bitmap位图,都是操作二进制位来进行记录,就只有0和1两个状态。当一个事务只有两种状态的时候可以使用bitmap。使用场景?签到打卡,将签到设置为1,未签到设置为0。可以消耗极小的内存记录下打卡的天数,和快速统计。HyperLogLog作用?用于统计基数。那么......
  • 缓存雪崩/穿透/击穿/失效原理图/14种缓存数据特征+10种数据一致性方案(全面篇)
    在当今数据驱动的互联网时代,缓存成为了提升应用性能的关键技术。面对海量用户请求,如何通过缓存策略有效减轻数据库压力、降低响应延迟?本文深入探讨了缓存雪崩、缓存穿透、缓存击穿等常见问题,并提供了全面的解决方案。通过实际案例分析,揭示了缓存设计的最佳实践,确保数据一致......
  • 31.Redis开发规范与性能优化
    一、键值设计1.key名设计(1)【建议】:可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idtrade:order:1(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:user:{uid}:friends:messages:{mid......
  • 大厂面试真题-说说caffine缓存的原理和基本使用
    Caffeine是一个基于Java的高性能缓存库,它提供了快速、高效的本地缓存解决方案。以下是关于Caffeine缓存的原理和基本使用的详细介绍:一、Caffeine缓存的原理数据存储:Caffeine使用内存作为数据存储介质,将缓存的数据存储在本地内存中。这样可以实现快速的数据读取和写入,避免了频......
  • 全网最详细K8S部署redis cluster
    K8S部署redisclusterRedisCluster介绍Redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis通过哨兵(Sentinel)和自动分区(Cluster)提供高可用性(highavailability)。在Redis集群中,节点负责保存数据并获取集群状态,包括将键映射到正确的......
  • redisson操作redis报错
    2024-11-0211:36:43.165ERROR87567---[sson-netty-2-26]o.r.client.handler.CommandDecoder:Unabletodecodedata.channel:[id:0x7bcb6790,L:/172.28.142.2:50324-R:10.98.32.100/10.98.32.100:4021],reply:ReplayingDecoderByteBuf(ridx=38,widx=9......