鼠标单击右键—"在此处打开命令窗口"的操作方法:
按住shift 在需要的根目录下添加即可
开启本地服务器后,打开
配置本地连接
使用:再要使用的地方加注解
使用Cacheable必须要加入参数:
value必须要有,它就是对应redis数据库里面的键
key属性是可选择的,对应的就是后缀,通过#号获取叫emp的参数。
第一次运行出错
:
添加配置文件
实体类继承serializable接口
不写key:(此处有一个输出语句:查询数据)
会默认给一个名字
再次查询,就不会查数据库了
但是显示的缓存结果是这样的:
所以要修改成json字符串:(key-value序列化)
@cacheput
什么意思呢?
对比一下:Cacheable,首次执行的时候 会执行访问数据库
然后缓存了这条查出来的数据
现在再次执行这个测试方法:不再查询数据库了。直接从缓存中取数据
现在来看Cacheput:
第一次执行
第二次执行:
不管缓存中是否有数据,方法体中的代码都会执行。
只要是Cacheput 每次查询都会查询,然后放到缓存里面。
不管缓存中是否有数据,都会把查询结果放进去,这样就可以达到缓存中的数据和数据库中的数据同步了。
所以当使用update的时候,可以使用CachePut中
@CacheEvict
用于删除
缓存里面就剩一条了。
弊端:只能存String 不能使用hash set之类来存。
模拟删除数据库,同时清空缓存