关于缓存的一些心得
创始人
2024-11-14 14:05:06
0

Cache Penetration

概述

Cachepenetration(缓存穿透) :缓存穿透是指大量请求查询系统中不存在的数据如通过不存在的 UID 访问用户,既然这些数据在系统中不存在,那么肯定在Redis缓存中也不存在这批数据,这样导致这些请求都会穿透到DB,导致系统崩溃。有些同学可能就会问了,既然系统中都没这些数据,为什么还会存在这样的请求了?别忘了,这个世界上还有一群计算机破坏分子,他们可能基于各种目的,伪造这样的请求去攻击你的系统。

解决方案

方案一:缓存不存在的key,即使key对应的数据系统中不存在,也将该key缓存下,只不过这个key对应的value是一个特殊设置的值。这样即使访问不存在的key时也会命中缓存返回,不会再去DB中获取了。

该方案缺陷:如果访问的是大量不存在的key,很显然,为了缓存这些系统中不存的key,会占用大量的缓存空间,而我们知道缓存空间是有限的,无效key占用的空间多了,势必会将一些正常的key淘汰掉,这样就导致缓存命中率下降。

方案二:构建一个BloomFilter 过滤器,记录全量数据,这样访问数据时,可以直接通过 BloomFilter 判断这个key 是否存在,如果不存在直接返回即可(BloomFilter特性:如果判断不存在则一定不存在),根本无需查缓存和 DB。

该方案缺陷:BloomFilter 要缓存全量的 key,这就要求全量的 key数量不能

相关内容

热门资讯

第6分钟阶段!we poker... 第6分钟阶段!we poker免费辅助器(脚本)一贯真的有辅助教程(哔哩哔哩)1、上手简单,内置详细...
4分钟绝活!丫丫游戏辅助(脚本... 4分钟绝活!丫丫游戏辅助(脚本)竟然真的是有辅助软件(哔哩哔哩)1、4分钟绝活!丫丫游戏辅助(脚本)...
九分钟课程!哈糖大菠萝开挂(脚... 九分钟课程!哈糖大菠萝开挂(脚本)真是一直总是有辅助工具(哔哩哔哩)哈糖大菠萝开挂透视方法中分为三种...
第四分钟学习!传送屋app辅助... 第四分钟学习!传送屋app辅助下载(脚本)本来一直都是有辅助攻略(哔哩哔哩)小薇(辅助器软件下载)致...
第7分钟模块!微乐家乡官方ap... 第7分钟模块!微乐家乡官方app下载(脚本)原来是真的有辅助脚本(哔哩哔哩)1、实时微乐家乡官方ap...
2分钟模块!扣点点脚本辅助器(... 2分钟模块!扣点点脚本辅助器(脚本)竟然是有辅助教程(哔哩哔哩)1、每一步都需要思考,不同水平的挑战...
第8分钟经验!广东麻雀有什么技... 第8分钟经验!广东麻雀有什么技巧(脚本)切实一直总是有辅助软件(哔哩哔哩)暗藏猫腻,小编详细说明广东...
第一分钟模板!朋友局辅助器(脚... 第一分钟模板!朋友局辅助器(脚本)其实有辅助神器(哔哩哔哩)小薇(辅助器软件下载)致您一封信;亲爱朋...
第九分钟方式!微乐小程序辅助收... 第九分钟方式!微乐小程序辅助收费(脚本)都是真的有辅助教程(哔哩哔哩)1、进入到微乐小程序辅助收费是...
九分钟大纲!pokermast... 九分钟大纲!pokermaster破解版(脚本)总是真的有辅助插件(哔哩哔哩)1、首先打开poker...