1、缓存双写一致性的理解
如果redis中有数据:需要和数据库中的值相同
如果redis中无数据:数据库中的值要是最新值,且准备回写redis
只读缓存很简单:就是Redis只做查询,有就是有,没有就是没有,不会再进一步访问MySQL,不再需要会写机制
大部分都是读写缓存,又分为两种:
同步直写策略
写数据库后也同步写redis缓存,缓存和数据库中的数据一 致
对于读写缓存来说,要想保证缓存和数据库中的数据一致,就要采用同步直写策略
比如特别重要的数据、热点敏感数据,例如充值后就需要立马更新,及时生效
异步缓写策略
正常业务运行中,mysq|数据变动了,但是可以在业务上容许出现一定时间后才作用于redis,比如仓库、物流系统、积分变更
异常情况出现了,不得不将失败的动作重新修补,有可能需要借助kafka或者RabbitMQ等消息中间件,实现重试重写
2、数据库和缓存一致性的几种更新策略
2.1 先更新数据库,再更新缓存
2.2 先更新缓存,再更新数据库
2.3 先删除缓存,再更新数据库
2.4 先更新数据库,再删除缓存
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。