一、数据库一二三级缓存
数据库一级缓存:
是指与数据库的会话绑定的缓存,通过链接数据库查询到的结果将被缓存下载,如果再次查询相同的数据则会直接从缓存中获取返回。
如果在一次会话中对数据执行了更新操作,那么将会自动清除缓存保持数据一致性。
数据库二级缓存:
二级缓存指的是基于整个应用的缓存,会跨多个会话。当多个会话建立并访问同样的数据时会直接从缓存中返回减少与数据库的交互。
但由于是跨多个会话的缓存,任意一个会话中如果对数据做了更新,那么必须清除所有会话的缓存来保持一致性。
三级缓存:
java 本身没有三级缓存概念,这里三级缓存一般指的是开发者通过将一些常用的数据存储到 redis(分布式缓存)等中间件来提高性能,但是需要整体考虑可行性并自行保证数据的一致性。比较复杂,需要开发者自行保证。
一般来说如果开启二级缓存需要保证数据基本很少改动。
二、CPU一二三级缓存
CPU 与内存之间的交互,即硬件层级的,CPU 处理速度远快于内存读写速度,为了提高效率和不浪费CPU,在CPU 与 内存之间添加了一二三级缓存,缓存的速度与CPU 相近,可以更好的为CPU 服务,但容量较小。且制造难度和成本等逐渐递减。