1 缓存基础
1.1 是什么?
缓存就是内存中的一个对象,可以基于此对象存储其它对象。
1.2 为什么要应用缓存? 降低数据库的访问压力,提高数据的查询效率,改善用户体验。
1.3 你了解哪些缓存?
- 数据库内置的缓存?(例如 mysql 的查询缓存)
- 数据层缓存(一般由持久层框架提供,例如 MyBatis)
- 业务层缓存(基于 map 等实现的本缓存,分布式缓存-例如 redis)
- 浏览器内置缓存?
- CPU 缓存(高速缓冲区)
1.4 设计缓存时你应该考虑哪些问题?
- 存储结构(使用什么结构存储数据效率会更高?-散列表)
- 淘汰策略(缓存容量有限-LRU/FIFO/LFU,软应用、弱引用)
- 任务调度(定期刷新缓存,缓存失效时间)
- 并发安全(缓存并发访问时的线程安全)
- 日志记录(缓存是否命中,命中率是多少)
- 序列化(存对象时序列化、取对象时反序列化) 2 本地缓存设计