日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot使用@Cacheable实现最简单的Redis缓存

發布時間:2025/3/17 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot使用@Cacheable实现最简单的Redis缓存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

之前我們使用過RedisTemplate來實現redis緩存,然后使用工具類來實現操作redis的存儲。這樣的方式好處是很自由,但是還不是最簡單的處理方式。對于一些簡單的應用來說,其實redis的緩存應用很簡單,只需要存儲和取出就可以了。
于是Spring提供了@Cacheable注解來實現,非常easy

?

操作步驟

1、啟動類上需要加@EnableCaching注解
2、在需要執行緩存的類上面寫上緩存前綴名稱
@CacheConfig(cacheNames="user")
3、在查詢方法上使用@Cacheable(key = "'list'")配置鍵的名稱
4、在修改方法上使用@CachePut(key = "'list'")配置鍵的名稱
然后就可以了?對,就可以了。
當調用查詢方法的時候,首先就會去redis里面看是否有相應的對象,如果有就直接從緩存中取,不會走下面的查詢方法,如果沒有就會進行查詢并將查詢后的數據存放到redis中。

?

整體代碼

https://github.com/LinkinStars/springBootTemplate
具體緩存方法在UserCacheServiceImpl中

?

測試步驟

第一次調用查詢
http://127.0.0.1:8080/cache/user/list

就會在控制臺中看到相應輸出“調用了方法,沒有從redis取”
第二次調用查詢,就會發現控制臺沒有相應輸出了,證明是直接從緩存中獲取的數據。

調用添加方法會操作緩存進行更新
http://127.0.0.1:8080/cache/user/add

調用刪除方法,因為沒有添加CachePut注解所以緩存數據并不會更新
http://127.0.0.1:8080/cache/user/delete

使用查詢之后數據還是原來的數據并沒有改變

?

注意事項

1、需要緩存的對象必須可以被序列化
2、查詢和修改返回的對象一定要相同,否則會報錯。
3、cacheNames可以配置在Cacheable和CachePut中,配置在CacheConfig中更加方便。
4、key可以根據入參和EL表達式來設置如:key="#user.id"
5、Cacheable中condition參數可以設置當滿足一定條件之后才會使用緩存

?

總結

1、這個緩存寫法用法非常簡單,用起來很舒服,不需要什么很復雜的配置
2、如果你只是緩存一些小東西,不需要對緩存進行一些特殊操作,比如緩存一些首頁廣告信息等等,那還是很方便的。
3、如果你需要對你的緩存進行很復雜的控制,緩存一些商品具體信息,并且還需要對緩存設置過期時間等等,那么這樣的方式就不能很好的滿足了,還是老老實實使用RedisTemplate來做吧。

其他用法可以參考:https://www.baeldung.com/spring-cache-tutorial

?

總結

以上是生活随笔為你收集整理的SpringBoot使用@Cacheable实现最简单的Redis缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。