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

springboot項目中redis常見的增刪改查操作大全

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

一、增(Create)??

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

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

?? 場景:

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

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

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

?? 場景:

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

3?? 存對象(常見??)

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

?? 注意:

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

?? 場景:

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

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

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

?? 場景:

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

二、查(Read)??

1?? 獲取字符串 / 對象

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

2?? 判斷是否存在

redisTemplate.hasKey("key");

?? 場景:

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

3?? Hash 查詢

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

?? 或獲取整個對象:

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

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

redisTemplate.getExpire("key");

三、改(Update)??

1?? 覆蓋更新(最常見)

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

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

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

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

?? 場景:

  • 修改用戶某個字段

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

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

?? 場景:

  • 瀏覽量
  • 點贊數(shù)
  • 訪問次數(shù)

4?? 自減

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

?? 場景:

  • 秒殺庫存

5?? 修改過期時間

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

?? 場景:

  • 延長緩存時間

四、刪(Delete)??

1?? 刪除單個 key

redisTemplate.delete("key");

2?? 批量刪除

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

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

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

?? 場景:

  • 刪除一類緩存
    ?? 生產(chǎ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ù)庫
    user = userMapper.selectById(id);
    // 3. 放入緩存
    redisTemplate.opsForValue().set(key, user, 30, TimeUnit.MINUTES);
    return user;
}

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

六、常見組合(真實項目??)

1?? 緩存 + 過期時間

set + expire

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

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

?? 解決方式:

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

3?? 緩存雪崩

?? 解決:

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

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

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

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

相關(guān)文章

  • Javafx利用fxml變換場景的實現(xiàn)示例

    Javafx利用fxml變換場景的實現(xiàn)示例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    SpringBoot?Test的webEnvironment源碼解讀

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

    SpringCloud項目中Feign組件添加請求頭所遇到的坑及解決

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

最新評論

县级市| 通海县| 浮山县| 从江县| 东莞市| 宾川县| 乡宁县| 柏乡县| 盘锦市| 洪湖市| 布尔津县| 焦作市| 灵宝市| 桦南县| 靖宇县| 吉水县| 玉山县| 赣州市| 芜湖市| 婺源县| 蒙城县| 通辽市| 类乌齐县| 民乐县| 丹棱县| 福海县| 融水| 宁强县| 道孚县| 锦州市| 拉孜县| 潮安县| 镶黄旗| 正阳县| 含山县| 竹北市| 上思县| 明星| 桐柏县| 搜索| 扶沟县|