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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot操作Redis哈希类型

發(fā)布時間:2025/3/19 javascript 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot操作Redis哈希类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述

SpringBoot操作Redis復(fù)雜對象,通常使用RedisTemplate,直接聲明即可。

@Autowired private RedisTemplate redisTemplate;

put、putAll

  • put設(shè)置對象的單個屬性值
  • putAll設(shè)置對象的多個屬性值
//設(shè)置user的name、age、sex(本文所有demo都是重新初始化該對象,后面的代碼沒有再貼出這一塊了) HashMap<String, Object> map = new HashMap<>(); map.put("name", "張三"); map.put("age", "23"); map.put("sex", "男"); redisTemplate.opsForHash().putAll("user", map); //使用entries獲取整個user對象 System.out.println("user:" + redisTemplate.opsForHash().entries("user"));
  • 輸出如下:
    user:{sex=男, name=張三, age=23}
  • 再次設(shè)置部分屬性,其他屬性的值不會受到影響
//這次只設(shè)置name、age HashMap<String, Object> map2 = new HashMap<>(); map2.put("name", "李四"); map2.put("age", "24"); redisTemplate.opsForHash().putAll("user", map2); //獲取user對象 System.out.println("user:" + redisTemplate.opsForHash().entries("user"));
  • 輸出如下(sex值不變):
    user:{sex=男, name=李四, age=24}

  • 其他用法
//使用put設(shè)置單個屬性 redisTemplate.opsForHash().put("user", "name", "張三三"); //使用get獲取單個屬性 System.out.println("user name:" + redisTemplate.opsForHash().get("user", "name"));

putIfAbsent

  • 跟put類似,區(qū)別是putIfAbsent只有當(dāng)屬性不存在才生效
//設(shè)置birth為當(dāng)前時間 System.out.println(redisTemplate.opsForHash().putIfAbsent("user", "birth", LocalDateTime.now())); System.out.println("birth:" + redisTemplate.opsForHash().get("user", "birth")); //等待2秒 Thread.sleep(2000); //再次設(shè)置birth為當(dāng)前時間 System.out.println(redisTemplate.opsForHash().putIfAbsent("user", "birth", LocalDateTime.now())); System.out.println("birth:" + redisTemplate.opsForHash().get("user", "birth"));
  • 輸出如下(第2次設(shè)置會失敗,返回false,birth不變):
    true
    birth:2020-08-17T16:34:22.355
    false
    birth:2020-08-17T16:34:22.355

hasKey

  • 判斷指定的屬性是否在對象中
System.out.println(redisTemplate.opsForHash().hasKey("user", "name"));; System.out.println(redisTemplate.opsForHash().hasKey("user", "name2"));;
  • 輸出如下:
    true
    false

delete

  • 刪除對象的一個或多個屬性
//刪除age、sex redisTemplate.opsForHash().delete("user", "age", "sex"); System.out.println("user:" + redisTemplate.opsForHash().entries("user"));
  • 輸出如下:
    user:{name=張三}

keys

  • 獲取對象的所有屬性名
System.out.println(redisTemplate.opsForHash().keys("user"));
  • 輸出如下:
    [name, sex, age]

multiGet

  • 獲取對象的多個屬性值,entries是獲取對象所有屬性值,兩個用法不同
List<String> keyList = new ArrayList<>(); keyList.add("name"); keyList.add("age"); System.out.println(redisTemplate.opsForHash().multiGet("user", keyList));
  • 輸出如下:
    [張三, 23]

總結(jié)

以上是生活随笔為你收集整理的SpringBoot操作Redis哈希类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。