Redis缓存
创始人
2024-03-16 18:05:06
0

一.简介

缓存就是数据交换的缓冲区(称作Cache [ kæʃ ] ),是存贮数据的临时地方,一般读写性能较高

二.添加Redis缓存 

三.缓存更新策略 

1.主动更新策略

Cache Aside Pattern(推荐)

需要调用者自己编码,但可控性高

Read/Write Through Pattern

优点:方便调用者

缺点:维护这样的服务成本较高

Write Behind Caching Pattern

优点:效率较高

缺点:要维护异步任务较复杂,并且难以保证一致性,甚至如果缓存出现宕机,数据将全部丢失

2.操作缓存

删除缓存与更新缓存

如何保证缓存与数据库的操作的同时成功或失败

单机系统可使用Spring的@transactional事务注解

如:

线程安全问题

①先删除缓存,再操作数据库 

正常情况:

异常情况:

由于读写缓存的速度远高于更新数据库的速度,所以该问题发生概率较高 

②先操作数据库,再删除缓存(推荐)

正常情况:

异常情况: 

该问题发生概率较低,如果发生了,可以在写入缓存时设置超时时间

3.总结

四.三大热点问题

1.缓存穿透

缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。如果有很多恶意的类似请求会给数据库带来很大的压力。

解决方案:①缓存空对象

优点: 实现简单,维护方便

缺点: ①额外的内存消耗(即缓存过多的空对象,可以通过设置过期时间TTL缓解) 

            ②可能造成短期的不一致(缓存空对象时,恰好数据库插入了这么一条数据,当然可以通过插入后更新缓存来解决)

解决方案:②布隆过滤

原理:实际上是一个字节数组存了很多二进制位,把数据经过某种Hash算法转成Hash值,再把这些Hash值转成二进制位保存到布隆过滤器中,用0,1表示是否存在

优点:内存占用较少,没有多余key

缺点: ①实现复杂

            ②布隆过滤器是一种概率统计,存在误判可能 ,可能布隆过滤器判断存在实际并不存在,有穿透风险

我们采用方案一来解决商户查询缓存:

其他方案: 

  • 增加数据复杂度,做好数据基础格式校验
  • 加强用户权限校验
  • 做好热点参数的限流

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...