1.缓存Cache
缓存是指将数据存储在一个临时的存储器中,以便于快速访问和读取。缓存的作用是提高系统的性能和响应速度,减少网络流量和数据库的负载。就比如我们去仓库找东西的时候每次都要进仓库数据库找,加入缓存就好比拿到了一份仓库数据库的清单然后再去找。
Spring缓存Cache的原理是将数据存储在内存中,以便于快速访问和读取,减少了频繁地去访问DAO层去访问数据库的过程。
2.Springboot开启缓存
在启动项上加上注解@EnableCaching
1.@Cacheable
@Cacheable(value/cacheName=”name1”),这个注释的意思是,当调用这个方法的时候,会从一个名叫 name1的缓存中查询。如果没有,则执行实际的方法(即查询数据库),并将执行的结果存入缓存中,否则返回缓存中的对象。
参数:
value/cacheName:指定缓存组件的名字
key:缓存数据时使用的key,默认使用方法参数
keyGenerator:key 的生成器。 key 和 keyGenerator 二选一使用
cacheManager:可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。
condition:条件,指定符合什么条件的时候,才进行缓存
unless:(和condition是条件满足时缓存相反)表示条件满足时不缓存
sync:指定是否使用异步模式,默认false,即同步模式(异步模式sync = true时,unless属性不可用)
2.@CachePut
@CachePut这个注释可以确保方法被执行,同时方法的返回值也被记录到缓存中,实现缓存与数据库的同步更新。
3.@CacheEvict
@CacheEvict 注释来标记要清空缓存的方法,当这个方法被调用后,即会清空缓存。
参数:
cacheNames/value:用来指定缓存组件名称。
key:缓存数据时使用的key,默认使用方法参数。
condition:指定符合条件的情况下的缓存。
allEntries:是否清空所有缓存,默认为false。指定为TRUE在调用方法后立刻清空所有缓存
beforeInvocation:是否在方法执行前就清空,默认为false,如果此时方法执行抛异常,则不会清空缓存。若指定为TRUE则在方法还没有执行的时候就清空缓存。