Redis 筆記(七)-Hash(哈希)類型詳解

  • Redis hash 是一個 string 類型的 fieldvalue 的映射表棺聊,hash 特別適合用于存儲對象。
  • Set 就是一種簡化的 Hash囤攀,只變動 key背稼,而 value 使用默認值填充。
  • 可以將一個Hash 表作為一個對象進行存儲植兰,表中存放對象的信息份帐。
  • 特點: value 是一個 map 結構,存在 key value key 楣导,無序的
  • 內存模型
  • 常用命令(h 開頭):
命令 說明
hset 設置一個key/value對
hget 獲得一個key對應的value
hgetall 獲得所有的key/value對
hdel 刪除某一個key/value對
hexists 判斷一個key是否存在
hlen 獲取哈希表中字段的數量
hkeys 獲得所有的key
hvals 獲得所有的value
hmset 設置多個key/value
hmget 獲得多個key的value
hsetnx 設置一個不存在的 key 的值废境,如 key 存在則不能設置
hincrby 為value進行加法運算
hincrbyfloat 為value加入浮點值
  • 設置 hset、獲取 gset
127.0.0.1:6379> hset myhash field1 h1        # set 一個具體 key-value
(integer) 1
127.0.0.1:6379> hget myhash field1        # 獲取一個字段值
"h1"
127.0.0.1:6379> hmset myhash field1 hello field2 world        # set 多個 key-value
OK
127.0.0.1:6379> hmget myhash field1 field2        # 獲取多個字段值
1) "hello"
2) "world"
127.0.0.1:6379> hgetall myhash        # 獲取全部的數據
1) "field1"            # key
2) "hello"             # value
3) "field2"
4) "world"
  • 刪除指定 key/value 對:hdel
127.0.0.1:6379> hdel myhash field1        # 刪除 hash 指定 key 字段筒繁,對應的 value 值消失
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
  • 獲取 Hash 中字段的數量:hlen
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379> hlen myhash          # 獲取 hash 表的字段數量
(integer) 2
  • 查看哈希表 key 中噩凹,指定的字段是否存在:hexists
127.0.0.1:6379> hexists myhash field1
(integer) 1            # 1 表示存在
127.0.0.1:6379> hexists myhash field3
(integer) 0            # 0 表示不存在
  • 只獲得所有的 keyhkeys
127.0.0.1:6379> hkeys myhash
1) "field2"
2) "field1"
  • 只獲得所有的 valuehvals
127.0.0.1:6379> hvals myhash
1) "world"
2) "hello"
  • 設置指定增量:hincrby
127.0.0.1:6379> hset myhash field3 0        # 添加字段,初始值為 0
(integer) 0
127.0.0.1:6379> hincrby myhash field3 1        # 指定增量 1
(integer) 1
127.0.0.1:6379> hvals myhash
1) "world"
2) "hello"
3) "1"
127.0.0.1:6379> hincrby myhash field3 -1        # 指定增量 -1毡咏,相當于自減 decr
(integer) 0
  • 設置一個不存在的 key 的值(如 key 存在則不能設置):hsetnx
127.0.0.1:6379> hsetnx myhash field4 hello        # key 不存在驮宴,可以設置
(integer) 1
127.0.0.1:6379> hsetnx myhash field4 hello        # key 已存在,不可以設置
(integer) 0
  • hash 最多的應用:存儲變更的數據 user:id呕缭、name 堵泽、age,尤其是用戶信息之類恢总,經常變動的信息迎罗!
127.0.0.1:6379> hset user:1 name li        # user:1 為 hash 的一個對象
(integer) 1
127.0.0.1:6379> hset user:1 name li age 20      # 在user:1 對象下,添加 name 和 age 字段
(integer) 1
127.0.0.1:6379> hvals user:1
1) "li"
2) "20"
127.0.0.1:6379> hgetall user:1
1) "name"
2) "li"
3) "age"
4) "20"
127.0.0.1:6379> hkeys user:1
1) "name"
2) "age"
  • hash 更適合于對象的存儲片仿,String 更加適合字符串存儲
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末纹安,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钻蔑,老刑警劉巖啥刻,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咪笑,居然都是意外死亡可帽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門窗怒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來映跟,“玉大人,你說我怎么就攤上這事扬虚∨叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵辜昵,是天一觀的道長荸镊。 經常有香客問我,道長堪置,這世上最難降的妖魔是什么躬存? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮舀锨,結果婚禮上岭洲,老公的妹妹穿的比我還像新娘。我一直安慰自己坎匿,他們只是感情好盾剩,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著替蔬,像睡著了一般告私。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上进栽,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天德挣,我揣著相機與錄音,去河邊找鬼快毛。 笑死,一個胖子當著我的面吹牛番挺,可吹牛的內容都是我干的唠帝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼玄柏,長吁一口氣:“原來是場噩夢啊……” “哼襟衰!你這毒婦竟也來了?” 一聲冷哼從身側響起粪摘,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瀑晒,失蹤者是張志新(化名)和其女友劉穎绍坝,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體苔悦,經...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡轩褐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了玖详。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片把介。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蟋座,靈堂內的尸體忽然破棺而出拗踢,到底是詐尸還是另有隱情,我是刑警寧澤向臀,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布巢墅,位于F島的核電站,受9級特大地震影響券膀,放射性物質發(fā)生泄漏君纫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一三娩、第九天 我趴在偏房一處隱蔽的房頂上張望庵芭。 院中可真熱鬧,春花似錦雀监、人聲如沸双吆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽好乐。三九已至,卻和暖如春瓦宜,著一層夾襖步出監(jiān)牢的瞬間蔚万,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工临庇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留反璃,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓假夺,卻偏偏與公主長得像淮蜈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子已卷,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內容