最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot項(xiàng)目中redis常見(jiàn)的增刪改查操作大全

 更新時(shí)間:2026年03月24日 10:08:22   作者:藤原とラふ店丶  
本文介紹了Spring Boot中使用RedisTemplate進(jìn)行數(shù)據(jù)操作的常見(jiàn)方法,文章強(qiáng)調(diào)Redis操作本質(zhì)是通過(guò)set/get/delete等API實(shí)現(xiàn),并結(jié)合業(yè)務(wù)場(chǎng)景給出了具體代碼示例和使用建議,感興趣的朋友跟隨小編一起看看吧

一、增(Create)??

1?? 最基礎(chǔ):存字符串

redisTemplate.opsForValue().set("key", "value");

?? 場(chǎng)景:

  • 緩存數(shù)據(jù)
  • 登錄態(tài) token

2?? 設(shè)置過(guò)期時(shí)間(非常常用??)

redisTemplate.opsForValue().set("key", "value", 10, TimeUnit.MINUTES);

?? 場(chǎng)景:

  • 緩存自動(dòng)失效
  • 避免臟數(shù)據(jù)

3?? 存對(duì)象(常見(jiàn)??)

redisTemplate.opsForValue().set("user:1", user);

?? 注意:

  • 需要序列化(JSON / Redis序列化器)

?? 場(chǎng)景:

  • 用戶信息緩存
  • 商品詳情緩存

4?? Hash 存對(duì)象(更推薦??)

redisTemplate.opsForHash().put("user:1", "name", "Tom");
redisTemplate.opsForHash().put("user:1", "age", 18);

?? 場(chǎng)景:

  • 存復(fù)雜對(duì)象
  • 避免整體序列化

二、查(Read)??

1?? 獲取字符串 / 對(duì)象

redisTemplate.opsForValue().get("key");

2?? 判斷是否存在

redisTemplate.hasKey("key");

?? 場(chǎng)景:

  • 防止重復(fù)請(qǐng)求
  • 緩存判斷

3?? Hash 查詢

redisTemplate.opsForHash().get("user:1", "name");

?? 或獲取整個(gè)對(duì)象:

redisTemplate.opsForHash().entries("user:1");

4?? 設(shè)置過(guò)期時(shí)間查詢

redisTemplate.getExpire("key");

三、改(Update)??

1?? 覆蓋更新(最常見(jiàn))

redisTemplate.opsForValue().set("key", "newValue");

?? 本質(zhì):
?? Redis 沒(méi)有“修改”,只有重新 set

2?? Hash 更新(局部更新??)

redisTemplate.opsForHash().put("user:1", "name", "Jerry");

?? 場(chǎng)景:

  • 修改用戶某個(gè)字段

3?? 自增(計(jì)數(shù)??)

redisTemplate.opsForValue().increment("count");

?? 場(chǎng)景:

  • 瀏覽量
  • 點(diǎn)贊數(shù)
  • 訪問(wèn)次數(shù)

4?? 自減

redisTemplate.opsForValue().decrement("stock");

?? 場(chǎng)景:

  • 秒殺庫(kù)存

5?? 修改過(guò)期時(shí)間

redisTemplate.expire("key", 5, TimeUnit.MINUTES);

?? 場(chǎng)景:

  • 延長(zhǎng)緩存時(shí)間

四、刪(Delete)??

1?? 刪除單個(gè) key

redisTemplate.delete("key");

2?? 批量刪除

redisTemplate.delete(Arrays.asList("k1", "k2"));

3?? 模糊刪除(慎用??)

Set<String> keys = redisTemplate.keys("user:*");
redisTemplate.delete(keys);

?? 場(chǎng)景:

  • 刪除一類緩存
    ?? 生產(chǎn)慎用(會(huì)阻塞)

五、真實(shí)項(xiàng)目中的完整流程(重點(diǎn)??)

?? 以“用戶查詢”為例:

public User getUser(Long id) {
    String key = "user:" + id;
    // 1. 查緩存
    User user = (User) redisTemplate.opsForValue().get(key);
    if (user != null) {
        return user;
    }
    // 2. 查數(shù)據(jù)庫(kù)
    user = userMapper.selectById(id);
    // 3. 放入緩存
    redisTemplate.opsForValue().set(key, user, 30, TimeUnit.MINUTES);
    return user;
}

?? 這就是標(biāo)準(zhǔn):
?? 緩存穿透/緩存使用模型(高頻面試)

六、常見(jiàn)組合(真實(shí)項(xiàng)目??)

1?? 緩存 + 過(guò)期時(shí)間

set + expire

?? 避免數(shù)據(jù)永久不更新

2?? 緩存擊穿(熱點(diǎn)數(shù)據(jù))

?? 解決方式:

  • 加鎖(Redis分布式鎖)
  • 邏輯過(guò)期

3?? 緩存雪崩

?? 解決:

  • 隨機(jī)過(guò)期時(shí)間
redisTemplate.opsForValue().set("key", "value", 30 + new Random().nextInt(10), TimeUnit.MINUTES);

七、一句話總結(jié)(面試直接用??)

??
Spring Boot 中 Redis 的增刪改查本質(zhì)是:通過(guò) RedisTemplate 提供的 set、get、delete、increment 等 API 實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、查詢、更新和刪除,其中增和改本質(zhì)都是 set,查用 get,刪用 delete,并結(jié)合過(guò)期時(shí)間和 Hash、List 等結(jié)構(gòu)實(shí)現(xiàn)復(fù)雜業(yè)務(wù)。

到此這篇關(guān)于springboot項(xiàng)目中redis常見(jiàn)的增刪改查操作大全的文章就介紹到這了,更多相關(guān)springboot redis增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Javafx利用fxml變換場(chǎng)景的實(shí)現(xiàn)示例

    Javafx利用fxml變換場(chǎng)景的實(shí)現(xiàn)示例

    本文主要介紹了Javafx利用fxml變換場(chǎng)景的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Springsecurity Oauth2如何設(shè)置token的過(guò)期時(shí)間

    Springsecurity Oauth2如何設(shè)置token的過(guò)期時(shí)間

    如果用戶在指定的時(shí)間內(nèi)有操作就給token延長(zhǎng)有限期,否則到期后自動(dòng)過(guò)期,如何設(shè)置token的過(guò)期時(shí)間,本文就來(lái)詳細(xì)的介紹一下
    2021-08-08
  • Netty分布式Server啟動(dòng)流程服務(wù)端初始化源碼分析

    Netty分布式Server啟動(dòng)流程服務(wù)端初始化源碼分析

    本章主要講解server啟動(dòng)的關(guān)鍵步驟,?讀者只需要了解server啟動(dòng)的大概邏輯,?知道關(guān)鍵的步驟在哪個(gè)類執(zhí)行即可,?并不需要了解每一步的運(yùn)作機(jī)制,?之后會(huì)對(duì)每個(gè)模塊進(jìn)行深度分析
    2022-03-03
  • Java ArrayList中存放引用數(shù)據(jù)類型的方式

    Java ArrayList中存放引用數(shù)據(jù)類型的方式

    這篇文章主要介紹了Java ArrayList中存放引用數(shù)據(jù)類型的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java獲取啟動(dòng)參數(shù)方式

    Java獲取啟動(dòng)參數(shù)方式

    本文介紹了Java應(yīng)用程序如何獲取JVM啟動(dòng)參數(shù),包括標(biāo)準(zhǔn)參數(shù)、非標(biāo)準(zhǔn)參數(shù)和高級(jí)參數(shù),介紹了通過(guò)`main`方法參數(shù)、`System.getProperty`和`RuntimeMXBean`獲取啟動(dòng)參數(shù)的方式,并提供了一個(gè)實(shí)際項(xiàng)目案例,展示了如何結(jié)合多種方式靈活配置應(yīng)用程序
    2025-01-01
  • SpringBoot實(shí)現(xiàn)PDF轉(zhuǎn)圖片的代碼示例

    SpringBoot實(shí)現(xiàn)PDF轉(zhuǎn)圖片的代碼示例

    在本文中,我們使用SpringBoot演示了如何將PDF文件轉(zhuǎn)換為一張或多張圖片,這些示例演示了如何使用Java編程語(yǔ)言與其他開(kāi)源技術(shù)集成,以實(shí)現(xiàn)各種文件格式之間的轉(zhuǎn)換,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-08-08
  • java中xml進(jìn)行報(bào)文發(fā)送和解析操作

    java中xml進(jìn)行報(bào)文發(fā)送和解析操作

    這篇文章主要介紹了java中xml進(jìn)行報(bào)文發(fā)送和解析操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • 使用ServletUtil.write方法下載接口文件中文亂碼問(wèn)題解決

    使用ServletUtil.write方法下載接口文件中文亂碼問(wèn)題解決

    本文主要介紹了使用ServletUtil.write方法下載接口文件中文亂碼問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • SpringBoot?Test的webEnvironment源碼解讀

    SpringBoot?Test的webEnvironment源碼解讀

    這篇文章主要為大家介紹了SpringBoot?Test的webEnvironment源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • SpringCloud項(xiàng)目中Feign組件添加請(qǐng)求頭所遇到的坑及解決

    SpringCloud項(xiàng)目中Feign組件添加請(qǐng)求頭所遇到的坑及解決

    這篇文章主要介紹了SpringCloud項(xiàng)目中Feign組件添加請(qǐng)求頭所遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評(píng)論

蕲春县| 东兰县| 德庆县| 庐江县| 翁牛特旗| 丰都县| 北京市| 武陟县| 射洪县| 恭城| 图木舒克市| 屯门区| 西贡区| 和田县| 吉林省| 逊克县| 循化| 赞皇县| 塘沽区| 交口县| 柞水县| 澄江县| 晋宁县| 湘阴县| 宜都市| 蒙城县| 浙江省| 襄汾县| 镇远县| 淳安县| 湄潭县| 上犹县| 定州市| 都昌县| 大兴区| 湖北省| 巴里| 正宁县| 铜鼓县| 金阳县| 运城市|