SpringCache声明式缓存@Cacheable @CachePut @CacheEvict

鼠标单击右键—"在此处打开命令窗口"的操作方法:
按住shift 在需要的根目录下添加即可

在这里插入图片描述


开启本地服务器后,打开
在这里插入图片描述
配置本地连接
在这里插入图片描述
s
在这里插入图片描述
在这里插入图片描述

使用:再要使用的地方加注解在这里插入图片描述
在这里插入图片描述
使用Cacheable必须要加入参数:
value必须要有,它就是对应redis数据库里面的键

在这里插入图片描述
key属性是可选择的,对应的就是后缀,通过#号获取叫emp的参数。

第一次运行出错
:在这里插入图片描述
添加配置文件
在这里插入图片描述
实体类继承serializable接口
在这里插入图片描述
在这里插入图片描述


不写key:(此处有一个输出语句:查询数据)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
会默认给一个名字
在这里插入图片描述
再次查询,就不会查数据库了
在这里插入图片描述
但是显示的缓存结果是这样的:
在这里插入图片描述
所以要修改成json字符串:(key-value序列化)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

@cacheput

在这里插入图片描述
在这里插入图片描述

什么意思呢?
对比一下:Cacheable,首次执行的时候 会执行访问数据库
在这里插入图片描述
在这里插入图片描述
然后缓存了这条查出来的数据
在这里插入图片描述
现在再次执行这个测试方法:不再查询数据库了。直接从缓存中取数据
在这里插入图片描述

现在来看Cacheput:
在这里插入图片描述
第一次执行
在这里插入图片描述
在这里插入图片描述
第二次执行:
在这里插入图片描述
在这里插入图片描述
不管缓存中是否有数据,方法体中的代码都会执行。
只要是Cacheput 每次查询都会查询,然后放到缓存里面。

在这里插入图片描述
在这里插入图片描述
不管缓存中是否有数据,都会把查询结果放进去,这样就可以达到缓存中的数据和数据库中的数据同步了。
所以当使用update的时候,可以使用CachePut中

@CacheEvict

用于删除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
缓存里面就剩一条了。
在这里插入图片描述

弊端:只能存String 不能使用hash set之类来存。

模拟删除数据库,同时清空缓存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值