Redis缓存查询策略,redis和Mysql一致性保证


本文方案适用于高并发环境,普通环境可采用更简洁的方案。

一、缓存更新

  采用先更新数据库,再删除缓存的策略。步骤如下:

  1)收到写请求首先更新数据库,并确定更新成功

  2)删除Redis缓存,如果删除成功,流程结束。

    3)如果Redis缓存没有删除成功,则将相关key放入消息队列,消费者进行重试操作,直到删除成功。

二、缓存读取

  1)收到读请求,首先读取Redis,判断缓存是否存在,如果存在,流程结束。

  2)如果Redis中,相关key的缓存不存在,则判断全局环境是否存在相同key的读请求。

  3)如果不存在相同读请求,则查询mysql,并将相关value更新到缓存。

  4)如果已存在相同读请求,则沉默一定时间,重新读取,直到读取成功。可以设置读取的重试次数,前提是确保99%的概率能读取成功。设置重试次数,也是为了保证不发生读取死循环。

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM