Spring Cache手動清理Redis快取
阿新 • • 發佈:2020-01-07
這篇文章主要介紹了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,不失為一種辦法....
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。