缓存

简介

相信小伙伴们在实际的开发中都使用过缓存, 但你真的明白缓存吗? 我认为多数小伙伴都未对缓存融会贯通, 这也是我写这篇文章的原因.

数据库的数据状态

这里假设数据库存储的数据为集合A, 那么数据库的数据状态就包含两点:

  • 存储数据集合A
  • 未存储集合A的补集.

缓存的作用

缓存就是缓存数据库的数据状态,来减轻数据库的查询压力.这里需要注意的是缓存数据库的状态是手段, 减轻数据库的查询压力是目的.

缓存的正确姿势

  • 对于每次走数据库的查询,均要缓存查询key和result,若result不存在则缓存空字符串. 避免缓存穿透
  • 每次查询数据库,对于查询数据库的key需加redis超时锁, 加锁成功失败均需要查询缓存, 查询不到且有锁的查询数据库并回写缓存. 避免缓存击穿
  • 缓存服务需高可用, 且缓存不设超时时间, 使用最近使用时间来淘汰缓存. 避免缓存雪崩
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容