软件编程
位置:首页>> 软件编程>> java编程>> Spring Cache手动清理Redis缓存

Spring Cache手动清理Redis缓存

作者:孙行者、  发布时间:2023-11-29 02:49:52 

标签:spring,cache,redis,缓存

这篇文章主要介绍了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 ,不失为一种办法....

来源:https://www.cnblogs.com/ElEGenT/p/11770408.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com