您的位置:首页 > 数据库 > Redis

springboot使用redis缓存

2018-01-30 00:21 183 查看
springboot比ssm配置redis要简单方便很多,下面进入配置步骤

首先在pom.xml文件中引入依赖:spring-boot-starter-data-redis

然后在application.yml文件中配置redis的IP地址和端口号,如果有密码还得配置密码

如图:


然后在springboot的启动类上添加@EnableCaching注解,你的所有类都得在springbootApplication类的同级包下,如果不是的话,你就得设置包扫描注解,

然后就可以进行redis缓存的使用了,在你想要加注解的地方使用

@Cacheable(cacheNames = "xxxx",value = "xxxx",key = "xxx",condition = "#xxx.xxx")

此注解用于需要存缓存的地方可以是类上也可以是方法上,

cacheNames为redis中key的前缀值,比如擦车Names = "School",则在Redis中显示为"School:",可有可五

value为school后面的值,这两个构成一个redis的key,

key属性是用来指定Spring缓存方法的返回结果时对应的key的,你可以使用EL表达式来获取key

condition有的时候我们可能并不希望缓存一个方法所有的返回结果。通过condition属性可以实现这一功能。condition属性默认为空,表示将缓存所有的调用情形。其值是通过SpringEL表达式来指定的,当为true时表示进行缓存处理;当为false时表示不进行缓存处理,即每次调用该方法时该方法都会执行一次。

当有地方改动值了需要做缓存同步,可使用 

@CacheEvict(cacheNames
= "xxxx",value = "xxxx",key = "xxx",condition = "#xxx.xxx")


属性一样,只是这个是用来清除缓存的。

使用场景举例:用户查看商品列表,则可以在查看商品列表的controller上加个缓存,或者查出来list的Service类上加个缓存,

如若后台添加了商品,或者下架了商品则需要在添加下架的controller或者service上清除这个缓存。


@CachePut(cacheNames = "xxxx",value = "xxxx",key = "xxx",condition = "#xxx.xxx")

       在支持Spring Cache的环境下,对于使用@Cacheable标注的方法,Spring在每次执行前都会检查Cache中是否存在相同key的缓存元素,如果存在就不再执行该方法,而是直接从缓存中获取结果进行返回,否则才会执行并将返回结果存入指定的缓存中。@CachePut也可以声明一个方法支持缓存功能。与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。

一般用的比较多的是@Cacheable和@CacheEvict
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息