> 软件应用
edis缓存一致性问题(edis缓存与数据库一致性问题解双删决)
导语:基于Redis分析缓存一致性问题在分析缓存一致性问题之前,先了解关于缓存的几个常见名词:缓存穿透key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源缓存击穿key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮缓存雪崩当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力关于上面三种情况,一般都有通用的解决方案缓存的目的就是为了减轻数据库的压力,提高查询性能,但若是比较重要的业务数据与数据库不对应,则会产生严重的后果。同样的,常见处理缓存的方式也罗列一下:先更新数据库,再更新缓存先删除缓存,再更新数据库针对以上两种解决办法产生的问题,也有一般通用的缓存解决方案:解决方案1:延时双删延时双删会进行两次缓存删除:1、更新之前删除缓存2、更新之后会再次删除缓存解决方案2:串行化这种串行化,将读取缓存和更新缓存的指令放入消息队列,按照FIFO的方式进行处理。这种虽然是比较保险点,但是也是增加了系统的复杂性。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小思创作整理编辑!