Redis基本數(shù)據(jù)類(lèi)型哈希Hash常用操作命令
Redis數(shù)據(jù)類(lèi)型Hash常用操作
redis里的hash是一個(gè)string類(lèi)型的field(字段)和value(值)的映射表。特別適合用于存儲(chǔ)對(duì)象,每個(gè)hash可以存儲(chǔ)40多億鍵值對(duì)。
熟悉python的童鞋可以想象成字典dict。之前的數(shù)據(jù)類(lèi)型存儲(chǔ)都是k-v這樣,而hash的存儲(chǔ)就是k-dict
,dict
里又會(huì)有屬于自己的k-v
。
一、hset
為哈希表中的字段賦值,如果哈希表不存在,創(chuàng)建一個(gè)新的哈希表被并進(jìn)行hset操作。
如果字段已經(jīng)存在于哈希表中,舊值將被覆蓋。
hset myhash k1 v1
二、hget
返回哈希表中指定字段的值,如果給定的字段或 key 不存在時(shí),返回 nil。
hget myhash k1
三、hmset
同時(shí)將多個(gè) field-value 對(duì)設(shè)置到哈希表中。
hmset myhash k2 v2 k3 v3
如果哈希表中已存在的字段,則覆蓋。
如果哈希表不存在,會(huì)創(chuàng)建一個(gè)空哈希表,并執(zhí)行hset操作。
四、hmget
返回哈希表中,一個(gè)或多個(gè)給定字段的值。
hmget myhash k1 k2 k3 k4
如果指定的字段不存在于哈希表,那么返回一個(gè)nil值。
五、hgetall
返回哈希表中,所有的字段和值。
hgetall myhash
注意,在返回值里,緊跟每個(gè)字段名(field name)之后是字段的值(value),所以返回值的長(zhǎng)度是哈希表大小的兩倍。
六、hdel
刪除哈希表 key 中的一個(gè)或多個(gè)指定字段,不存在的字段將被忽略。
hdel myhash k2 k3 k5
返回的是被成功刪除字段的數(shù)量,不包括被忽略的字段。
七、hlen
獲取哈希表中字段的數(shù)量。
hlen myhash
八、hexists
查看哈希表的指定字段是否存在。
hexists myhash k1
如果哈希表含有給定字段,返回 1。
如果哈希表不含有給定字段,或 key 不存在,返回 0 。
九、hkeys
獲取哈希表中的所有字段(field)。
hkeys myhash
包含哈希表中所有字段(field)列表。 當(dāng) key 不存在時(shí),返回一個(gè)空列表。
十、hvals
返回哈希表所有字段(field)的值。
hvals myhash
返回一個(gè)包含哈希表中所有字段(field)值的列表。 當(dāng) key 不存在時(shí),返回一個(gè)空表。
十一、hincrby
為哈希表中的字段值加上指定增量值,這個(gè)增量也可以是負(fù)數(shù),相當(dāng)于減法。
若哈希表的 key 不存在,創(chuàng)建一個(gè)新的哈希表被并執(zhí)行hincrby
命令。
若指定的字段不存在,那么在執(zhí)行命令前,字段的值被初始化為 0 。
若對(duì)儲(chǔ)存字符串值的字段執(zhí)行,會(huì)報(bào)錯(cuò)。
十二、hsetnx
為哈希表中不存在的的字段賦值。
若哈希表不存在,創(chuàng)建新的哈希表并進(jìn)行 hset 操作。
如果字段已經(jīng)存在于哈希表中,操作無(wú)效。
如果key不存在,創(chuàng)建新哈希表并執(zhí)行hsetnx
命令。
關(guān)于redis中hash的應(yīng)用,比如保存用戶(hù)信息數(shù)據(jù)、經(jīng)常變動(dòng)的信息,如果不想使用傳統(tǒng)的k-v對(duì)象去存儲(chǔ),可以用redis的hash。
以上就是Redis基本數(shù)據(jù)類(lèi)型哈希Hash常用命令操作的詳細(xì)內(nèi)容,更多關(guān)于Redis數(shù)據(jù)類(lèi)型哈希Hash操作命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 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類(lèi)型的使用
- Redis數(shù)據(jù)類(lèi)型string和Hash詳解
- Redis String 類(lèi)型和 Hash 類(lèi)型學(xué)習(xí)筆記與總結(jié)
- Redis教程(四):Hashes數(shù)據(jù)類(lèi)型
- php操作redis中的hash和zset類(lèi)型數(shù)據(jù)的方法和代碼例子
- Redis遠(yuǎn)程字典服務(wù)器?hash類(lèi)型示例詳解
相關(guān)文章
Redis主從配置和底層實(shí)現(xiàn)原理解析(實(shí)戰(zhàn)記錄)
今天給大家分享Redis主從配置和底層實(shí)現(xiàn)原理解析,本文通過(guò)實(shí)戰(zhàn)項(xiàng)目給大家源碼解析,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-06-06SpringBoot整合Redis入門(mén)之緩存數(shù)據(jù)的方法
Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API,下面通過(guò)本文給大家介紹下SpringBoot整合Redis入門(mén)之緩存數(shù)據(jù)的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-11-11詳解Redis數(shù)據(jù)類(lèi)型實(shí)現(xiàn)原理
這篇文章主要介紹了Redis數(shù)據(jù)類(lèi)型實(shí)現(xiàn)原理,在工作中或?qū)W習(xí)中有需要的小伙伴可以參考一下這篇文章2021-08-08Go語(yǔ)言操作RediSearch進(jìn)行搜索方法示例詳解
這篇文章主要為大家介紹了Go語(yǔ)言操作RediSearch進(jìn)行搜索方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Redis的數(shù)據(jù)存儲(chǔ)及String類(lèi)型的實(shí)現(xiàn)
這篇文章主要介紹了Redis的數(shù)據(jù)存儲(chǔ)及String類(lèi)型的實(shí)現(xiàn),redis作為k-v數(shù)據(jù)存儲(chǔ),因查找和操作的時(shí)間復(fù)雜度都是O(1)和豐富的數(shù)據(jù)類(lèi)型及數(shù)據(jù)結(jié)構(gòu)的優(yōu)化,了解了這些數(shù)據(jù)類(lèi)型和結(jié)構(gòu)更有利于我們平時(shí)對(duì)于redis的使用,需要的朋友可以參考下2022-10-10