×

redis 缓存穿透,redis 缓存穿透 缓存击穿

前端技术网 前端技术网 发表于2023-12-19 06:42:40 浏览118 评论0

抢沙发发表评论

一、数据穿透是什么

缓存穿透:缓存和数据库中都没有的数据,而用户(黑客)不断发起请求。

例子

redis 缓存穿透,redis 缓存穿透 缓存击穿

我们数据库的id都是从1自增的,如果发起id=-1的数据或者id特别大不存在的数据,这样的不断攻击导致数据库压力很大,严重会击垮数据库。

解决

1)增加校验。比如用户鉴权,参数做校验,不合法的校验直接return,比如id做基础校验,id<=0直接拦截;

2)布隆过滤器。Redis里还有一个高级用法布隆过滤器(BloomFilter)这个也能很好的预防缓存穿透的发生。

它的原理也很简单,就是利用高效的数据结构和算法快速判断出你这个Key是否在数据库中存在,不存在你return就好了,存在你就去查DB刷新KV再return。

redis 缓存穿透,redis 缓存穿透 缓存击穿

二、set nx函数用法

1.setnx函数是在Matlab中用于设置矩阵的元素值的函数。2.使用setnx函数可以方便地设置矩阵中某个元素的值,可以通过指定行列坐标或者线性索引来进行设置。例如,setnx(A,2,3,4)可以将矩阵A中第2行第3列的元素设置为4。3.setnx函数还可以用于设置多个元素的值,可以通过指定多个行列坐标或者线性索引来进行设置。此外,setnx函数还支持一些高级用法,例如可以设置矩阵的某个区域的值,或者可以使用函数句柄来进行设置。

好了,文章到此结束,希望可以帮助到大家。