国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用SpringCache操作Redis緩存數(shù)據(jù)

這篇具有很好參考價值的文章主要介紹了使用SpringCache操作Redis緩存數(shù)據(jù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

SpringCache概念

SpringCache是一個框架,實現(xiàn)了基于注解的緩存功能,只需要簡單的加一個注解,就能實現(xiàn)緩存功能。

SpringCache提供了一層抽象,底層可以切換不同的緩存實現(xiàn),例如:

  • EHCache
  • Caffeine
  • Redis

使用(導(dǎo)入redis跟SpringCache的 依賴即可)

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

SpringCache常用注解

@EnableCaching

開啟緩存注解功能,加在啟動類上

@Cacheable

加在方法上,執(zhí)行方法前會先去緩存中查看是否有緩存有的話直接返回,沒有的話會通過反射調(diào)用方法,并將方法的返回值緩存起來

@CachPut

將方法的返回值,直接放在緩存中

@CacheEvict

將一條數(shù)據(jù)或者多條數(shù)據(jù)從緩存中刪除

@Cacheable使用

@GetMapping("/test")
@Cacheable(value = "test",key = "#key",unless = "#result == null") //組合起來的key就是test:: + 入?yún)ey
public String test(String key) {
return "hello SpringCache";
}

如果入?yún)⑹菍ο?

@GetMapping("/test")
@Cacheable(value = "test",key = "#user.id",unless = "#result == null") //組合起來的key就是test:: + 入?yún)ser的id屬性
public String test(User user) {
return "hello SpringCache";
}

unless

unless的意思就是: 當(dāng)不滿足條件的時候進(jìn)行緩存 也就是condition 相反,因為condition中沒有#result這個spel表達(dá)式,所以要使用unless

底層知識:

Cacheable底層是通過代理來實現(xiàn)的,當(dāng)你調(diào)用的時候創(chuàng)建一個Controller的代理對象,會先拼接key,判斷在緩存中是否存在,存在直接返回,不存在通過反射調(diào)用方法。如果返回值滿足指定條件(condition、unless)會將返回值緩存起來。

@CachePut 使用

CachePut會將返回值放到緩存中,unless跟condition跟Cacheable一樣

還有一個不同就是Cacheable的key沒有#result這個表達(dá)式,CachePut有

可以看一下CachePut源碼的注釋:

使用SpringCache操作Redis緩存數(shù)據(jù),springboot,緩存,redis文章來源地址http://www.zghlxwxcb.cn/news/detail-809342.html

@GetMapping("/test3")
@CachePut(value = "test3",key = "#key")
public List<String > test3(String key) {
List<String > list = new ArrayList<>();
list.add("1");
list.add("1");
list.add("1");
list.add("1");
return list;
}

@CacheEvict 使用

精準(zhǔn)刪除(test4::key)

@GetMapping("/test4")
@CacheEvict(value = "test4",key = "#key")
public List<String > test4(String key) {
return null;
}

全部刪除(test4::)

@GetMapping("/test4")
@CacheEvict(value = "test4",allEntries = true)
public List<String > test4(String key) {
return null;
}

到了這里,關(guān)于使用SpringCache操作Redis緩存數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • springboot+redis+mysql+quartz-通過Java操作redis的KEYS*命令獲取緩存數(shù)據(jù)定時更新數(shù)據(jù)庫

    代碼講解: 3-點贊功能-定時持久化到數(shù)據(jù)庫(pipeline+lua)-完善過程2_嗶哩嗶哩_bilibili https://www.bilibili.com/video/BV1w14y1o7BV 本文章代碼: blogLike_schedule/like03 · xin麒/XinQiUtilsOrDemo - 碼云 - 開源中國 (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/blogLike_schedule/like03 數(shù)據(jù)

    2024年02月15日
    瀏覽(31)
  • springboot+redis+mysql+quartz-使用pipeline+lua技術(shù)將緩存數(shù)據(jù)定時更新到數(shù)據(jù)庫

    代碼講解:7.3點贊功能-定時持久化到數(shù)據(jù)庫-Java程序整合pipeline+lua_嗶哩嗶哩_bilibili https://www.bilibili.com/video/BV1Lg4y1w7U9 代碼: blogLike_schedule/like08 · xin麒/XinQiUtilsOrDemo - 碼云 - 開源中國 (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/blogLike_schedule/like08 數(shù)據(jù)庫表:

    2024年02月13日
    瀏覽(18)
  • redis(12):springboot使用redis注解做緩存

    redis(12):springboot使用redis注解做緩存

    1 新建springboot項目 ? 2 相關(guān)注解 @EnableCaching 在啟動類上加上注解啟動緩存 #作用在你要緩存的數(shù)據(jù)上 @Cacheable(key=\\\"#id\\\",cacheNames=\\\"com.sxt.service.impl.MenuServiceImpl\\\") @Cacheput 解決臟讀 @CachEvict(解決臟讀) @Cacheconfig(全局的配置緩存) 3 修改yml

    2024年02月15日
    瀏覽(26)
  • SpringBoot 如何使用 Redis 作為緩存?

    SpringBoot 如何使用 Redis 作為緩存?

    在今天的互聯(lián)網(wǎng)應(yīng)用中,緩存是一個非常重要的概念。緩存可以減輕數(shù)據(jù)庫的負(fù)擔(dān),提高系統(tǒng)的性能。Redis 是一個非常流行的內(nèi)存數(shù)據(jù)庫,它可以用作緩存,提供快速的讀寫速度和高可用性。在本文中,我們將介紹如何在 SpringBoot 中使用 Redis 作為緩存。 Redis 是一個高性能的

    2024年02月11日
    瀏覽(27)
  • springboot:緩存不止redis,學(xué)會使用本地緩存ehcache

    springboot:緩存不止redis,學(xué)會使用本地緩存ehcache

    隨著redis的普及,更多的同學(xué)對redis分布式緩存更加熟悉,但在一些實際場景中,其實并不需要用到redis,使用更加簡單的本地緩存即可實現(xiàn)我們的緩存需求。 今天,我們一起來看看本地緩存組件ehcache ehcache是基于java開發(fā)的本地緩存組件,無需單獨安裝部署,只要引入jar包就

    2024年02月01日
    瀏覽(27)
  • SpringBoot使用redis作為緩存的實例

    SpringBoot使用redis作為緩存的實例

    目錄 什么是緩存? ?緩存的作用? 緩存的成本? 實際項目中的應(yīng)用 ?代碼展示 緩存 就是數(shù)據(jù)交換的緩沖區(qū)(稱作 Cache [ k?? ] ),是存貯數(shù)據(jù)的臨時地方,一般讀寫性能較高。 ????????降低后端負(fù)載 ????????提高讀寫效率,降低響應(yīng)時間 ????????數(shù)據(jù)一致性成本

    2024年02月14日
    瀏覽(22)
  • SpringBoot使用Redis實現(xiàn)分布式緩存

    SpringBoot使用Redis實現(xiàn)分布式緩存

    ?作者簡介:2022年 博客新星 第八 。熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進(jìn)。 ??個人主頁:Java Fans的博客 ??個人信條:不遷怒,不貳過。小知識,大智慧。 ??當(dāng)前專欄:SpringBoot 框架從入門到精通 ?特色專欄:國學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:SpringBoot使用

    2023年04月09日
    瀏覽(20)
  • Springboot+Redis:實現(xiàn)緩存 減少對數(shù)據(jù)庫的壓力

    Springboot+Redis:實現(xiàn)緩存 減少對數(shù)據(jù)庫的壓力

    ????歡迎光臨,終于等到你啦???? ??我是蘇澤,一位對技術(shù)充滿熱情的探索者和分享者。???? ??持續(xù)更新的專欄 Redis實戰(zhàn)與進(jìn)階 本專欄講解Redis從原理到實踐 這是蘇澤的個人主頁可以看到我其他的內(nèi)容哦???? 努力的蘇澤 http://suzee.blog.csdn.net/ ? 目錄 緩存如何實現(xiàn)?

    2024年03月24日
    瀏覽(19)
  • Redis工具類(緩存操作,Object轉(zhuǎn)換成JSON數(shù)據(jù))

    依賴spring-data-redis-2.4.1.jar

    2024年02月11日
    瀏覽(17)
  • 【案例實戰(zhàn)】SpringBoot整合Redis實現(xiàn)緩存分頁數(shù)據(jù)查詢

    【案例實戰(zhàn)】SpringBoot整合Redis實現(xiàn)緩存分頁數(shù)據(jù)查詢

    正式觀看本文之前,設(shè)想一個問題,高并發(fā)情況下,首頁列表數(shù)據(jù)怎么做? 類似淘寶首頁,這些商品是從數(shù)據(jù)庫中查出來的嗎?答案肯定不是,在高并發(fā)的情況下,數(shù)據(jù)庫是扛不住的,那么我們要怎么去扛住C端大并發(fā)量呢,這塊我們可以借助Redis,我們知道Redis是一個基于內(nèi)

    2024年02月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包