0
点赞
收藏
分享

微信扫一扫

Redis面试问题

技术只适用于干活 2022-01-12 阅读 63

如何保存缓存和数据库的一致性?

  • 数据库有数据,缓存没有数据;
  • 数据库有数据,缓存也有数据,数据不相等;
  • 数据库没有数据,缓存有数据。

使用缓存的策略:

  • 首先尝试从缓存读取,读到数据则直接返回;如果读不到,就读数据库,并将数据会写到缓存,并返回。
  • 需要更新数据时,先更新数据库,然后把缓存里对应的数据失效掉(删掉)

可见第一种和第二种,如果遵守了使用缓存的策略,就不会产生不一致的情况,因此,最终的结论,需要解决的不一致,产生的原因是更新数据库成功,但是删除缓存失败

解决方案大概以下几种:
1、对删除缓存进行重试,推荐采用「先更新数据库,再删除缓存」方案,并配合「消息队列」或「订阅变更日志」的方式来做。
2、定期全量更新,简单的说,就是定期把全部缓存清理,然后在全量加载。
3、给所有的缓存一个失效期。

对redis事物的理解?

添加链接描述

Redis慢查询?

添加链接描述

举报

相关推荐

0 条评论