redis的hash類(lèi)型操作方法
簡(jiǎn)介
Hash是一個(gè)鍵值對(duì)的集合。Hash 是一個(gè) String 類(lèi)型的 field(字段) 和 value(值) 的映射表,hash 特別適合用于存儲(chǔ)對(duì)象。
Hash存儲(chǔ)結(jié)構(gòu)優(yōu)化:
如果field數(shù)量較少,存儲(chǔ)結(jié)構(gòu)優(yōu)化為類(lèi)數(shù)組結(jié)構(gòu)
如果field數(shù)量較多,存儲(chǔ)結(jié)構(gòu)使用HashMap結(jié)構(gòu)
原生操作
增加/修改【key的field的value】
增加/修改
hset key field value
如果哈希表不存在,一個(gè)新的哈希表被創(chuàng)建并進(jìn)行 HSET 操作。 如果字段已經(jīng)存在于哈希表中,舊值將被重寫(xiě)
增加(多個(gè))
hmset key field1 value1 field2 value2……
增加(鎖,只有field不存在時(shí)生效)
hsetnx key field value
如果哈希表不存在,一個(gè)新的哈希表被創(chuàng)建并進(jìn)行 hsetnx 操作。
如果字段已經(jīng)存在于哈希表中,操作無(wú)效。
如果 key 不存在,一個(gè)新哈希表被創(chuàng)建并執(zhí)行 hsetnx 命令
查詢
查詢一個(gè)(key的field的value)
hget key field
查詢所有field
hkeys key
查詢所有value
hvals key
刪除【key的field】
刪除一個(gè)或多個(gè)
hdel key field1 field2……
不存在的字段將被忽略
方法 判斷指定key中是否存在field
hexists key field
如果哈希表含有給定字段,返回 1 。 如果哈希表不含有給定字段,或 key 不存在,返回 0
為哈希表key中的field字段的值加上增量increment(數(shù)字)
hincrby key field increment
增量也可以為負(fù)數(shù),相當(dāng)于對(duì)指定字段進(jìn)行減法操作 如果哈希表的 key 不存在,一個(gè)新的哈希表被創(chuàng)建并執(zhí)行 hincrby 命令 如果指定的字段不存在,那么在執(zhí)行命令前,字段的值被初始化為 0 對(duì)一個(gè)儲(chǔ)存字符串值的字段執(zhí)行 hincrby 命令將造成一個(gè)錯(cuò)誤
java操作redis的hash類(lèi)型
【boundHashOps()】 增加 往指定key中存儲(chǔ) 鍵值
redisTemplate.boundHashOps("demo").put("1",1);
批量存儲(chǔ)到指定key中
Map<String,String> map = new HashMap<>();
map.put("3","zhangsan");
map.put("4","lisi");
redisTemplate.boundHashOps("demo").putAll(map);根據(jù)指定key判斷鍵是否存在,存在返回false不新增,不存在則新增鍵值對(duì)返回true
System.out.println(redisTemplate.boundHashOps("demo").putIfAbsent("7", 5));修改
重新命名當(dāng)前key的名稱(chēng)
redisTemplate.boundHashOps(key).rename("test"); 查詢
根據(jù)指定key中得鍵取出值
System.out.println(redisTemplate.boundHashOps("demo").get("1"));根據(jù)指定key取出所有鍵
Set<Object> keys = redisTemplate.boundHashOps("demo").keys();獲取指定key中所有鍵值對(duì)得值
List<Object> values = redisTemplate.boundHashOps("demo").values();
System.out.println(values);根據(jù)指定key取出全部鍵值對(duì)
Map<Object, Object> entries = redisTemplate.boundHashOps("demo").entries();
刪除
根據(jù)指定key中得鍵刪除
redisTemplate.boundHashOps("demo").delete("1");方法
設(shè)置key得到期時(shí)間 TimeUnit 設(shè)置時(shí)間類(lèi)型(時(shí)、分、秒...)
redisTemplate.boundHashOps("demo").expire(100000, TimeUnit.MILLISECONDS);獲取當(dāng)前key過(guò)期時(shí)間
System.out.println(redisTemplate.boundHashOps("demo").getExpire());獲取指定key得元素長(zhǎng)度
Long size = redisTemplate.boundHashOps("demo").size();
判斷指定key中是否存在該鍵
System.out.println(redisTemplate.boundHashOps("demo").hasKey("1"));
獲取當(dāng)前key的存儲(chǔ)方式
System.out.println(redisTemplate.boundHashOps("demo").getType());
到此這篇關(guān)于redis的hash類(lèi)型的詳解的文章就介紹到這了,更多相關(guān)redis的hash類(lèi)型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Redis遠(yuǎn)程字典服務(wù)器?hash類(lèi)型示例詳解
- springboot中redis操作Hash踩坑解決
- Redis哈希Hash鍵值對(duì)集合操作(查詢?cè)黾有薷?
- Redis設(shè)置Hash數(shù)據(jù)類(lèi)型的過(guò)期時(shí)間
- Redis數(shù)據(jù)類(lèi)型之散列類(lèi)型hash命令學(xué)習(xí)
- Redis中Hash類(lèi)型的使用
- redis中hash數(shù)據(jù)結(jié)構(gòu)及說(shuō)明
- redis如何取hash的值
- Redis的Hash類(lèi)型及相關(guān)命令小結(jié)
相關(guān)文章
Redis基本數(shù)據(jù)類(lèi)型哈希Hash常用操作命令
這篇文章主要為大家介紹了Redis基本數(shù)據(jù)類(lèi)型哈希Hash常用操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Redisson分布式限流的實(shí)現(xiàn)原理解析
這篇文章主要為大家介紹了Redisson分布式限流的實(shí)現(xiàn)原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Redis中三種特殊數(shù)據(jù)類(lèi)型命令詳解
Geospatial是地理位置類(lèi)型,我們可以用來(lái)查詢附近的人、計(jì)算兩人之間的距離等,這篇文章主要介紹了Redis中三種特殊數(shù)據(jù)類(lèi)型命令詳解,需要的朋友可以參考下2024-05-05
詳解redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作
這篇文章主要介紹了詳解redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12
Redis基本數(shù)據(jù)類(lèi)型Zset有序集合常用操作
這篇文章主要為大家介紹了redis基本數(shù)據(jù)類(lèi)型Zset有序集合常用操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Web-ssrfme:redis 未授權(quán)訪問(wèn)攻擊的問(wèn)題解決
本文主要介紹了Web-ssrfme:redis 未授權(quán)訪問(wèn)攻擊的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
Redis高并發(fā)緩存設(shè)計(jì)問(wèn)題與性能優(yōu)化
本文詳細(xì)介紹了Redis緩存設(shè)計(jì)中常見(jiàn)的問(wèn)題及解決方案,包括緩存穿透、緩存失效(擊穿)、緩存雪崩、熱點(diǎn)緩存key重建優(yōu)化、緩存與數(shù)據(jù)庫(kù)雙寫(xiě)不一致以及開(kāi)發(fā)規(guī)范與性能優(yōu)化,感興趣的可以了解一下2024-11-11

