Redis研究(四)—散列類型

來源:互聯網
上載者:User

標籤:redis   散列類型   hash   

散列類型(hash)的鍵值也是一種字典結構,其儲存了欄位(field)和欄位值的映射,但欄位值只能是字串,不支援其他資料類型。

散列類型不能嵌套其他的資料類型。一個散列類型鍵可以包含至多2^32-1個欄位。


一、介紹

散列類型適合儲存物件:使用物件類別和ID構成鍵名,使用欄位表示對象的屬性,而欄位值則儲存屬性值。

如果要關係資料中儲存汽車對象:

資料是以二維表的形式儲存的,這就要求所有的記錄都有同樣的屬性,無法單獨為某條記錄增減屬性。如果想要為ID為1的汽車增加生產日期屬性,就需要把資料表更改為

ID為2和3的兩條記錄來說data欄位是冗餘的。資料量多難以維護。

但是,Redis就可以自由的為任何鍵增減欄位而不影響其他鍵。


二、命令

1.賦值與取值

hset key field valuehget key fieldhmset key f1 v1 f2 v2......hmget key f1 f2.....hgetall key

hset不區分插入和更新操作,當執行的是插入時(之前欄位不存在)hset返回1,當執行的是更新操作(之前欄位已經存在)時hset返回0.當鍵本身不存在時hset還會自動建立它。


hgetall命令擷取鍵中所有的欄位和欄位值。


2.判斷欄位是否存在

hexists key field
存在返回1,不存在返回0,當鍵不存在也返回0

3.當欄位不存在時賦值

和hset區別如果欄位已經存在,hsetnx命令不執行任何操作,原子操作,不用擔心競態條件。

hsetnx key field value


4.增加數字

hincrby key field increment

5.刪除欄位

hdel key f1 f2...


三、實踐
儲存一篇文章

第一種方法:


第二種方法:


第二種更加直觀也更容易維護,儲存節約空間。


四、命令拾遺

hkeys key 只擷取欄位hvals key 只擷取欄位值hlen key 獲得欄位數量




Redis研究(四)—散列類型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.