Redis知识总结(1)缓存原理&设计
缓存概述
- 缓存:CPU上一种高速存储器,它先于内存与CPU交换数据,速度很快
- 使用场景:
-
DB缓存,减轻DB服务器压力 提高系统响应 session分离 分布式锁 乐观锁
- 缓存的优势
-
提升用户体验 减轻服务器压力 提升系统性能
- 缓存的代价
-
额外的硬件支出 高并发缓存失效 缓存与数据库数据同步 缓存并发竞争
缓存的读写模式
- 旁路缓存(Cache Aside Pattern) 读的时候先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应 更新时候先更新数据库,然后再删除缓存 高并发脏读的三种情况: a.先更新数据库,再更新缓存 b.先删除缓存,再更新数据库 c. 先更新数据库,再删除缓存(推荐,采用延时双删)
- 穿透模式/直读直写模式(Read/Write Through Pattern) 应用程序只操作缓存,缓存操作数据库
- 后写缓存模式(Write Behind Caching Pattern) 应用只更新缓存,缓存通过异步方式将数据批量合并后更新到DB中,不能随时同步,甚至丢失数据
