Spring Cache手动清理Redis缓存
这篇文章主要介绍了SpringCache手动清理Redis缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
注册cacheRedisTemplate
将cache的RedisTemplate注册为Bean
@Bean(name="cacheRedisTemplate") publicRedisTemplatecacheRedisTemplate(@Qualifier("jedisConnectionFactory")JedisConnectionFactoryjedisConnectionFactory, @Qualifier("jedisYsfKeySerializer")RedisSerializerjedisYsfKeySerializer, @Qualifier("jedisYsfValueSerializer")RedisSerializerjedisYsfValueSerializer){ RedisTemplatecacheRedisTemplate=newRedisTemplate(); cacheRedisTemplate.setConnectionFactory(jedisConnectionFactory); cacheRedisTemplate.setEnableTransactionSupport(false); cacheRedisTemplate.setKeySerializer(jedisYsfKeySerializer); cacheRedisTemplate.setValueSerializer(jedisYsfValueSerializer); returncacheRedisTemplate; }
使用cacheRedisTemplate
那么在清除缓存的时候,可以直接使用cacheRedisTemplate.
.... @Autowired @Qualifier("cacheRedisTemplate") varcacheRedisTemplate:YsfRedisTemplate[String,Object]=_ ... cacheRedisTemplate.delete(s"cc.c.sta.real.in.day:$id-$start-$i")
这里是scala的语法,java同理
其他写缓存,查缓存,都一样操作.
奇异用法
在Mybatis的Dao上加注解.
@CacheEvict(value=CACHE_PREFIX,key="#root.args[0]+'-'+#root.args[1]+'-'+#root.args[2]") intclearCache(@Param("id")Longid, @Param("start")Longstart, @Param("type")Integertype)throwsDataAccessException;
Mybatis的sql是如下内容:
select1
这个操作并没有实质性的数据库操作,只是为了删除缓存.6666,不失为一种办法....
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。