SpringBoot集成Redis和RedisTemplate

SpringBoot对redis非常友好,不需要像传统项目那样使用Jedis,只要添加spring-boot-starter-data-redis的maven依赖
接下来是添加redis和RedisTemplate的bean
application.yml配置
spring:
redis:
#redis数据库索引(默认为0)
database: 0
#redis服务器地址
host: ip
#redis服务器连接端口
port: 6379
#redis连接密码
password: 123456
接下来是使用SpringBoot注解实现redis的存取操作的实例
因为使用了Spring Data Jpa,所以这里给出repository层的代码,然后在service层调用该层方法。
注解说明
@CacheConfig(cacheNames = "databusEntity")
cacheNames 指定该类所有方法操作的缓存名称,是全局的。也可以在方法上加,但缓存名称仅对该方法生效,是局部的。
@Cacheable(key = "#p0", keyGenerator = "myKeyGenerator")
1.@Cacheable : 如果方法的第一个参数key(p0)存在于redis缓存中,则从缓存中获取value作为方法的返回结果,否则按照方法定义获取返回结果(一般是查询数据库)。
2.#p0表示第一个参数的key,即保存该方法操作的缓存的key(以HashMap的形式存储)到第一个参数,keyGenerator 定义Key生成的类。
@CachePut(key = "#p0.id")
p0.id表示将第一个参数的id作为key缓存到redis中,value为第一个参数值。
@CacheEvict(key="#p0", allEntries=true)
1.p0表示删除key为第一个参数的redis缓存数据
2.allEntries=true表示删除缓存中的所有值(key和value)
allEntries=false表示仅删除key对应的value
测试类
访问url,对比结果可以清晰地知道redis的缓存put和evict的过程。