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

java實(shí)現(xiàn)RedisTemplate操作哈希數(shù)據(jù)

 更新時(shí)間:2024年09月05日 11:50:22   作者:家有嬌妻張兔兔  
RedisTemplate是Spring Data Redis提供的一個(gè)用于操作Redis的模板類,本文主要介紹了java實(shí)現(xiàn)RedisTemplate操作哈希數(shù)據(jù),具有一定的參考價(jià)值,感興趣的可以了解一下

概述

Redis是一個(gè)開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),它可以用作數(shù)據(jù)庫(kù)、緩存和消息代理。Redis 的核心是提供數(shù)據(jù)類型的集合,在Redis中,有多種數(shù)據(jù)結(jié)構(gòu),如字符串、列表、集合、有序集合和哈希表,它可以幫助解決從緩存到隊(duì)列再到事件處理的各種問題。

RedisTemplate是Spring Data Redis提供的一個(gè)用于操作Redis的模板類,它提供了豐富的方法來操作Redis中的哈希數(shù)據(jù)。

常用方法

本文來介紹下一些常用的使用RedisTemplate操作哈希數(shù)據(jù)的方法及簡(jiǎn)單示例。

添加哈希數(shù)據(jù)

向Redis中的哈希表中添加數(shù)據(jù),可以使用opsForHash()方法獲取哈希操作對(duì)象,然后調(diào)用putAll()方法。

示例:

@Resource
private RedisTemplate<String, Object> redisTemplate;

public void addHashData(String key, Map<String, Object> hashData) {
    redisTemplate.opsForHash().putAll(key, hashData);
    Map newMap = new HashMap();  
    newMap.put("map3","map3-3");  
    newMap.put("map5","map5-5");  
    redisTemplate.opsForHash().putAll("hashValue",newMap);  
    map = redisTemplate.opsForHash().entries("hashValue");  
    System.out.println("通過putAll(H key, Map<? extends HK,? extends HV> m)方法以map集合的形式添加鍵值對(duì):" + map); 
}

添加hashMap值

向Redis中的哈希表中添加hashMap值,可以使用opsForHash()方法獲取哈希操作對(duì)象,然后調(diào)用put(H key, HK hashKey, HV value)方法。

示例:

@Resource
private RedisTemplate<String, Object> redisTemplate;

public void addHashMapValue(String key, String hashKey, String value) {
    redisTemplate.opsForHash().put("hashValue","map1","map1-1");  
    redisTemplate.opsForHash().put("hashValue","map2","map2-2"); 
    redisTemplate.opsForHash().put(key, hashKey, value); 
} 

判斷hashkey

Redis中的哈希表判斷hashkey是否存在,可以使用putIfAbsent(H key, HK hashKey, HV value)方法判斷hashkey是否存在,如果hashKey存在,啥也不操作,如果hashKey不存在,則新增。

示例:

redisTemplate.opsForHash().putIfAbsent("hashValue","map6","map6-6");  
map = redisTemplate.opsForHash().entries("hashValue");  
System.out.println("通過putIfAbsent(H key, HK hashKey, HV value)方法添加不存在于變量中的鍵值對(duì):" + map); 

獲取哈希數(shù)據(jù)

從Redis中的哈希表中獲取數(shù)據(jù),可以使用opsForHash()方法獲取哈希操作對(duì)象,然后調(diào)用entries()方法。

示例:

public Map<Object, Object> getHashData(String key) {
    return redisTemplate.opsForHash().entries(key);
}

獲取屬性值

從Redis中的哈希表中獲取某個(gè)屬性的值,可以使用opsForHash()方法獲取哈希操作對(duì)象,然后調(diào)用get()方法:

示例:

public Object getHashDataValue(String key, String field) {
    return redisTemplate.opsForHash().get(key, field);
}

獲取hashMap值

獲取指定變量中的hashMap值,通過values(H key)方法獲取變量中的hashMap值

示例:

values(H key)
List<Object> hashList = redisTemplate.opsForHash().values("hashValue");  
System.out.println("通過values(H key)方法獲取變量中的hashMap值:" + hashList); 

獲取鍵值對(duì)

通過entries(H key)方法獲取變量中的鍵值對(duì)

示例:

entries(H key)
Map<Object,Object> map = redisTemplate.opsForHash().entries("hashValue");  
System.out.println("通過entries(H key)方法獲取變量中的鍵值對(duì):" + map);

獲取map鍵是否有值

獲取變量中的指定map鍵是否有值,如果存在該map鍵則獲取值,沒有則返回null。

示例:

get(H key, Object hashKey)
Object mapValue = redisTemplate.opsForHash().get("hashValue","map1");  
System.out.println("通過get(H key, Object hashKey)方法獲取map鍵的值:" + mapValue); 

判斷是否有map鍵

通過hasKey(H key, Object hashKey)方法判斷變量中是否存在map鍵

示例:

    hasKey(H key, Object hashKey)
    
    boolean hashKeyBoolean = redisTemplate.opsForHash().hasKey("hashValue","map3");  
    System.out.println("通過hasKey(H key, Object hashKey)方法判斷變量中是否存在map鍵:" + hashKeyBoolean);   

獲取鍵

通過keys(H key)方法獲取變量中的鍵

示例:

keys(H key)
    
Set<Object> keySet = redisTemplate.opsForHash().keys("hashValue");  
System.out.println("通過keys(H key)方法獲取變量中的鍵:" + keySet);  

獲取長(zhǎng)度

通過size(H key)方法獲取變量的長(zhǎng)度

示例:

size(H key)
    
long hashLength = redisTemplate.opsForHash().size("hashValue");  
System.out.println("通過size(H key)方法獲取變量的長(zhǎng)度:" + hashLength); 

集合方式獲取值

通過multiGet(H key, Collection hashKeys)方法以集合的方式獲取變量中的值

示例:

multiGet(H key, Collection<HK> hashKeys)
    
List<Object> list = new ArrayList<Object>();  
list.add("map1");  
list.add("map2");  
List mapValueList = redisTemplate.opsForHash().multiGet("hashValue",list);  
System.out.println("通過multiGet(H key, Collection<HK> hashKeys)方法以集合的方式獲取變量中的值:"+mapValueList); 

匹配獲取鍵值對(duì)

匹配獲取鍵值對(duì),通過scan(H key, ScanOptions options)方法獲取匹配鍵值對(duì),ScanOptions.NONE為獲取全部鍵對(duì),ScanOptions.scanOptions().match(“map1”).build() 匹配獲取鍵位map1的鍵值對(duì),不能模糊匹配。

示例:

    scan(H key, ScanOptions options)
   
    Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("hashValue",ScanOptions.scanOptions().match("map1").build());  
    //Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("hashValue",ScanOptions.NONE);  
    while (cursor.hasNext()){  
        Map.Entry<Object,Object> entry = cursor.next();  
        System.out.println("通過scan(H key, ScanOptions options)方法獲取匹配鍵值對(duì):" + entry.getKey() + "---->" + entry.getValue());  
    }  

自增

以double值大小自增。

通過increment(H key, HK hashKey, double delta)方法使變量中的鍵以值的大小進(jìn)行自增長(zhǎng)

示例:

increment(H key, HK hashKey, double delta) 

double hashIncDouble = redisTemplate.opsForHash().increment("hashInc","map1",3);  
System.out.println("通過increment(H key, HK hashKey, double delta)方法使變量中的鍵以值的大小進(jìn)行自增長(zhǎng):" + hashIncDouble);  

以long值大小自增。

通過increment(H key, HK hashKey, long delta)方法使變量中的鍵以值的大小進(jìn)行自增長(zhǎng)

示例:

increment(H key, HK hashKey, long delta)

long hashIncLong = redisTemplate.opsForHash().increment("hashInc","map2",6);  
System.out.println("通過increment(H key, HK hashKey, long delta)方法使變量中的鍵以值的大小進(jìn)行自增長(zhǎng):" + hashIncLong);  

修改刪除

修改哈希數(shù)據(jù)中的某個(gè)屬性值

修改Redis中的哈希表中某個(gè)屬性的值,可以使用opsForHash()方法獲取哈希操作對(duì)象,然后調(diào)用put()方法。

示例:

public void updateHashDataValue(String key, String field, Object newValue) {
    redisTemplate.opsForHash().put(key, field, newValue);
}

刪除哈希數(shù)據(jù)中的某個(gè)屬性值

從Redis中的哈希表中刪除某個(gè)屬性的值,可以使用opsForHash()方法獲取哈希操作對(duì)象,然后調(diào)用delete()方法。

示例:

public void deleteHashDataValue(String key, String field) {
    redisTemplate.opsForHash().delete(key, field);
}

刪除哈希表

要?jiǎng)h除Redis中的整個(gè)哈希表,可以使用delete()方法。示例:

public void deleteHashTable(String key) {
    redisTemplate.delete(key);
    delete(H key, Object... hashKeys)
    刪除變量中的鍵值對(duì),可以傳入多個(gè)參數(shù),刪除多個(gè)鍵值對(duì)。
    redisTemplate.opsForHash().delete("hashValue","map1","map2");  
    map = redisTemplate.opsForHash().entries("hashValue");  
    System.out.println("通過delete(H key, Object... hashKeys)方法刪除變量中的鍵值對(duì)后剩余的:" + map); 
}

到此這篇關(guān)于java實(shí)現(xiàn)RedisTemplate操作哈希數(shù)據(jù)的文章就介紹到這了,更多相關(guān)RedisTemplate操作哈希數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • SpringCloud 2020-Ribbon負(fù)載均衡服務(wù)調(diào)用的實(shí)現(xiàn)

    SpringCloud 2020-Ribbon負(fù)載均衡服務(wù)調(diào)用的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud 2020-Ribbon負(fù)載均衡服務(wù)調(diào)用的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • java springboot郵箱找回密碼功能的實(shí)現(xiàn)講解

    java springboot郵箱找回密碼功能的實(shí)現(xiàn)講解

    這篇文章主要介紹了java springboot郵箱找回密碼功能的實(shí)現(xiàn)講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java 如何把byte轉(zhuǎn)化為KB、MB、GB的方法

    java 如何把byte轉(zhuǎn)化為KB、MB、GB的方法

    這篇文章主要介紹了java 如何把byte轉(zhuǎn)化為KB、MB、GB的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 詳解PipedInputStream和PipedOutputStream_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    詳解PipedInputStream和PipedOutputStream_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了管道PipedInputStream和PipedOutputStream,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • mybatis-plus數(shù)據(jù)權(quán)限實(shí)現(xiàn)代碼

    mybatis-plus數(shù)據(jù)權(quán)限實(shí)現(xiàn)代碼

    這篇文章主要介紹了mybatis-plus數(shù)據(jù)權(quán)限實(shí)現(xiàn),結(jié)合了mybatis-plus的插件方式,做出了自己的注解方式的數(shù)據(jù)權(quán)限,雖然可能存在一部分的局限性,但很好的解決了我們自己去解析SQL的功能,需要的朋友可以參考下
    2023-06-06
  • spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析

    spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析

    這篇文章主要介紹了spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • java JSP開發(fā)之Spring中Bean的使用

    java JSP開發(fā)之Spring中Bean的使用

    這篇文章主要介紹了java JSP開發(fā)之Spring中Bean的使用的相關(guān)資料,在Spring中,bean的生命周期就比較復(fù)雜,這里就詳細(xì)介紹下,需要的朋友可以參考下
    2017-08-08
  • SpringBoot基于knife4j生成接口文檔方式

    SpringBoot基于knife4j生成接口文檔方式

    Knife4j介紹一個(gè)基于Swagger的JavaAPI文檔生成工具,提供美觀界面和高級(jí)功能,本文詳細(xì)介紹了在SpringBoot項(xiàng)目中集成Knife4j的方法,包括導(dǎo)入依賴、創(chuàng)建Swagger配置和WebMvcConfiguration配置類等
    2026-05-05
  • mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn)

    mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn)

    本文主要介紹了mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • SpringBoot中@EnableAsync和@Async注解的使用小結(jié)

    SpringBoot中@EnableAsync和@Async注解的使用小結(jié)

    在SpringBoot中,可以通過@EnableAsync注解來啟動(dòng)異步方法調(diào)用的支持,通過@Async注解來標(biāo)識(shí)異步方法,讓方法能夠在異步線程中執(zhí)行,本文就來介紹一下,感興趣的可以了解一下
    2023-11-11

最新評(píng)論

永平县| 霸州市| 安溪县| 久治县| 读书| 同江市| 西华县| 三原县| 慈溪市| 塘沽区| 朔州市| 登封市| 安岳县| 广元市| 通海县| 资源县| 马山县| 承德县| 钟山县| 罗江县| 大同市| 临澧县| 徐州市| 浑源县| 周口市| 榆社县| 商丘市| 大化| 长沙县| 祥云县| 伊通| 河源市| 加查县| 册亨县| 奉新县| 沙洋县| 五家渠市| 龙门县| 屏南县| 兴隆县| 蒲城县|