Redis系列學習筆記3 雜湊

2021-07-11 23:56:12 字數 1943 閱讀 7219

儲存多個域值對。乙個雜湊由多個域值對(field-value pair)組成,雜湊的域和值都可以是文字、整數、浮點數或者二進位制資料。同乙個雜湊裡面的每個域必須是獨一無

二、各不相同的,而域的值則沒有這一要求,換句話說,不同域的值可以是重複的。通過命令,使用者可以對雜湊執行設定域值對、獲取域的值、檢查域是否存在等操作,也可以讓 redis 返回雜湊包含的所有域、所有值或者所有域值對。

hset key field value

在雜湊鍵 key 中關聯給定的域值對 field 和 value 。如果域 field 之前沒有關聯值,那麼命令返回 1 ;如果域 field 已經有關聯值,那麼命令用新值覆蓋舊值,並返回 0 。

hget key field

返回雜湊鍵 key 中,域 field 所關聯的值。如果域 field 沒有關聯值,那麼返回 nil 。

hsetnx key field value

如果雜湊鍵 key 中,域 field 不存在(也即是, 還沒有與之相關聯的值),那麼關聯給定的域值對 field 和 value 。如果域 field 已經有與之相關聯的值,那麼命令不做動作。

hexists key field

檢視雜湊鍵 key 中,給定域 field 是否存在:存在返回 1 ,不存在返回 0 。

hdel key field [field …]

刪除雜湊鍵 key 中的乙個或多個指定域,以及那些域的值。不存在的域將被忽略。命令返回被成功刪除的域值對數量。

hlen key

返回雜湊鍵 key 包含的域值對數量。

hmset key field value [field value …]

在雜湊鍵 key 中關聯多個域值對,相當於同時執行多個 hset 。

hmget key field [field …]

返回雜湊鍵 key 中,乙個或多個域的值,相當於同時執行多個 hget 。

hkeys key

返回雜湊鍵 key 包含的所有域。

hvals key

返回雜湊鍵 key 中,所有域的值。

hgetall key

返回雜湊鍵 key 包含的所有域值對。

hincrby key field increment

為雜湊鍵 key 中,域 field 的值加上整數增量 increment 。

hincrbyfloat key field increment

為雜湊鍵 key 中,域 field 的值加上浮點數增量 increment 。

雖然 redis 沒有提供與以上兩個命令相匹配的 hdecrby 命令和 hdecrbyfloat 命令,但我們同樣可以通過將 increment 設為負數來達到做減法的效果。

雜湊操作

字串操作

hset

sethget

gethsetnx

setnx

hdel

del(刪除乙個鍵,不僅限於字串鍵)

hmset

mset

hmget

mget

hincrby

incrby

hincrbyfloat

incrbyfloat

hexists

exists(檢查乙個鍵是否存在,不僅限於字串鍵)

雜湊可以讓我們將一些相關的資訊儲存在同乙個地方,而不是直接分散地儲存在整個資料庫裡面,這不僅方便了資料管理,還可以盡量避免誤操作發生。

在一般情況下,儲存相同數量的鍵值對資訊,使用雜湊鍵比使用字串鍵更節約記憶體。因為在資料庫裡面建立的每個鍵都帶有資料庫附加的管理資訊(比如這個鍵的型別、最後一次被訪問的時間等等),所以資料庫裡面的鍵越多,伺服器在儲存附加管理資訊方面耗費的記憶體就越多,花在管理資料庫鍵上的 cpu 也會越多。

除此之外,當雜湊包含的域值對數量比較少的時候,redis 會自動使用一種占用記憶體非常少的資料結構來做雜湊的底層實現,在雜湊的數量比較多的時候,這一措施對減少記憶體有很大的幫助。

Redis系列學習 一 Redis簡介

2.4 總結 3.redis的特點 4.redis的應用場景 5.redis總結 redis是乙個開源的 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 高效能 nosql key value資料庫。nosql資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難...

vue系列學習筆記

1.v if 在vue.js中,我們使用v if指令實現同樣的功能 利用v if控制該元素有還是沒有 template v if 因為v if是乙個指令,需要將它新增到乙個元素上,但如果想切換多個元素,可以把乙個元素當作包裝元素,並在上面使用v if,最終的渲染結果不會包含它 例如2.v show ...

YOLO系列學習筆記

此文參考 1 給乙個大小為448x448的輸入影象,首先將影象劃分成7 7的網格。2 對於每個網格,每個網格 2個bouding box 每個box包含5個 量 以及20個類別概率,總共輸出7 7 2 5 20 1470個tensor 3 根據上一步可以 出7 7 2 98個目標視窗,然後根據閾值去...