这篇文章主要介绍了Spring Cache手动清理Redis缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
注册cacheRedisTemplate
将 cache 的 RedisTemplate 注册为Bean
@Bean(name = "cacheRedisTemplate") public RedisTemplate cacheRedisTemplate(@Qualifier("jedisConnectionFactory") JedisConnectionFactory jedisConnectionFactory, @Qualifier("jedisYsfKeySerializer") RedisSerializer jedisYsfKeySerializer, @Qualifier("jedisYsfValueSerializer") RedisSerializer jedisYsfValueSerializer) { RedisTemplate cacheRedisTemplate = new RedisTemplate(); cacheRedisTemplate.setConnectionFactory(jedisConnectionFactory); cacheRedisTemplate.setEnableTransactionSupport(false); cacheRedisTemplate.setKeySerializer(jedisYsfKeySerializer); cacheRedisTemplate.setValueSerializer(jedisYsfValueSerializer); return cacheRedisTemplate; }
使用cacheRedisTemplate
那么在清除缓存的时候, 可以直接使用 cacheRedisTemplate .
.... @Autowired @Qualifier("cacheRedisTemplate") var cacheRedisTemplate : 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]") int clearCache(@Param("id") Long id, @Param("start") Long start, @Param("type") Integer type) throws DataAccessException;
Mybatis的 sql 是如下内容:
<select id="clearCache" resultType="int"> select 1 </select>
这个操作并没有实质性的数据库操作 , 只是为了删除缓存 . 6666 ,不失为一种办法....
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
Dokuwiki糊里糊涂地用了一年多,前两天忽然发现整个dokuwiki文件夹大得吓人,居然有130多MB,而我这个wiki站也就不到10个的页面。巡视一圈,冗余文件集中在 data/cache 缓存文件夹中,dokuwiki靠高速缓存提高页面加载速度,不过我的缓存文件实在太多了,居然有80多MB(大概因为时间太久了吧) 那么,开删!cache文件夹是不能删的,里面的1、2、3、a、b、c什么的全
我在看一些在线课程的播放列表,spring boot的测试项目。简单的积垢。它创建了一些表,但我决定更改一些字段的名称,从连接到mysql的cmd中删除了表。重新启动后,项目不会再次创建此表。我说的对吗,它存储在缓存中的某个地方,即表已经创建的记录?或者,例如,它是否将自动增量id的值存储在缓存中的某个位置?在第二次重新启动之后,spring只是因为一些登录缓存而不检查数据库中表的存在?如何在不从
本文向大家介绍浅谈SpringCache与redis集成实现缓存解决方案,包括了浅谈SpringCache与redis集成实现缓存解决方案的使用技巧和注意事项,需要的朋友参考一下 缓存可以说是加速服务响应速度的一种非常有效并且简单的方式。在缓存领域,有很多知名的框架,如EhCache 、Guava、HazelCast等。Redis作为key-value型数据库,由于他的这一特性,Redis也成为一
问题内容: 我的任务是利用SpringCache作为我们的一项服务,以减少数据库查找的次数。在测试实现时,我注意到一些可缓存操作通过日志语句多次调用。调查显示,如果在可缓存的方法中调用了可缓存的操作,则嵌套操作根本不会被缓存。因此,嵌套操作的后续调用将导致进一步的查找。 下面列出了描述问题的简单单元测试: 这两种方法的实际工作对于测试用例本身并不重要,因为仅应测试缓存。 我以某种方式理解了为什么不
在应用程序(Spring引导服务)启动时,需要清除Redis缓存。 Redis运行在另一个docker容器中,该容器具有自己的卷映射。因为它保留了旧的缓存,所以即使在应用程序重新启动后,应用程序也会从Redis缓存而不是数据库中拾取数据 > 尝试了的,但它从未被调用。 在Application ationMain类中尝试了,但是它没有清除缓存。 尝试使用,但仍然没有运气 @组件公共类应用程序启动{