使用spring+redis实现缓存
来源:互联网 发布:男生丁丁知乎 编辑:程序博客网 时间:2024/06/10 23:18
在使用缓存之前,需要先介绍一下,Spring为缓存提供的几个注解:
@Cacheable:在方法执行前Spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放进缓存
@CachePut:无论怎样,都将会将方法的返回值放到缓存中。@CachePut的属性与@Cacheable保持一样
@CacheEvict:将一条或多条数据从缓存中删除
@Caching:可以通过@Caching注解组合多个注解策略在一个方法上
下面看一个实例:
@Override@Cacheable(value = "template", key = "#id")public SmsTemplate getById(Long id){ return smsTemplateMapper.getById(id);}
这是一个服务,其他代码自行脑补吧,比如说其中的mapper,我这里是用MyBatis实现的。
如果你的配置中有多个缓存组件,那么就需要选择一个缓存的类型才行。
spring: cache: type: redis
在spring boot的入口类中要加入如下的注解,用来开启缓存
@EnableCaching
通过上面的代码后,可以验证一下结果,打开redis查看一下:
127.0.0.1:6379> KEYS *1) "template:\xac\xed\x00\x05sr\x00\x0ejava.lang.Long;\x8b\xe4\x90\xcc\x8f#\xdf\x02\x00\x01J\x00\x05valuexr\x00\x10java.lang.Number\x86\xac\x95\x1d\x0b\x94\xe0\x8b\x02\x00\x00xp\x00\x00\x00\x00\x00\x00\x00\x01"
这里的乱码是因为redistemplate没有序列化导致的,影响不大的。
现在再来看一下@Cacheable(value = “template”, key = “#id”)
这个注解的意思是,在访问方法之前,先去缓存中查找,value = “template”, key = “#id”的key是否存在,因为上例中并没有序列化,其实key可以理解为template:1这样的情形,如果没有找到再进入方法体中从数据库请求数据,请求数据之后将数据放到缓存中保存起来,这样一个完整的过程就完成了。
这里要注意的是,key = “#id”中的id是我的参数中的名称,只有这样才能接受到该值。
其中这里还有很多种方式的表达式,这里只介绍了我自己用到的场景,其他的使用方式还要大家去扩展,而且这里只介绍了一种方法的使用,大家可以举一反三,其实很简单,主要是Spring Boot为我们已经做了大量的配置,省去了很多工作。
- 使用spring+redis实现缓存
- 使用Spring Data +Redis实现缓存
- Spring Boot使用redis实现数据缓存
- spring + redis实现缓存
- Spring+redis缓存使用
- Spring Data+Redis缓存实现
- Spring集成Redis缓存实现
- Spring boot 使用 Redis 缓存
- 深入理解Spring Redis的使用 (八)、Spring Redis实现 注解 自动缓存
- 使用redis实现页面缓存
- Django使用redis实现缓存
- 安装部署redis+实现redis分布式缓存 java+Spring+redis
- 深入理解Spring Redis的使用 (六)、用Spring Aop 实现注解Dao层的自动Spring Redis缓存
- spring + redis 实现数据的缓存
- spring + redis 实现数据的缓存
- Spring集成Redis实现缓存实践
- Spring Boot集成Redis实现缓存
- spring + redis 实现数据的缓存
- css-零散知识点
- 机器学习算法中文视频教程
- OLE操作Excel(OLE/COM)
- 用CocoaPods 建立自己的库类
- 剑指offer-面试题36-数组中的逆序对
- 使用spring+redis实现缓存
- 关于bind的问题
- [LeetCode] Unique Paths II
- js try catch
- Java还要再学一遍基础(六)ArrayList详解
- Android 屏幕旋转 Sensor SensorManager
- 支持向量机通俗导论(理解SVM的三层境界)
- Codeforces 812C Sagheer and Nubian Market[二分]
- 和机器学习和计算机视觉相关的数学之一