redis的五種資料類型---hash類型

來源:互聯網
上載者:User
簡介

      常用命令:hget;hset;hgetall等

      我們可以將Redis中的Hashes類型看成具有String Key和String Value的map容器。所以該類型非常適合於儲存值對象的資訊。如Username、Password和Age等。如果Hash中包含很少的欄位,那麼該類型的資料也將僅佔用很少的磁碟空間。每一個Hash可以儲存4294967295個索引值對。
應用情境

      同樣是緩衝,在Memcached中,我們經常將一些結構化的資訊打包成HashMap,在用戶端序列化後儲存為一個字串的值,比如使用者的暱稱、年齡、性別、積分等,這時候在需要修改其中某一項時,通常需要將所有值取出還原序列化後,修改某一項的值,再序列化儲存回去。這樣不僅增大了開銷,也不適用於一些可能並行作業的場合(比如兩個並發的操作都需要修改積分)。而Redis的Hash結構可以使你像在資料庫中Update一個屬性一樣只修改某一項屬性值。
執行個體介紹

key                   value

userID            username;age;birthday

普通儲存方式:

第一種:key:userID;              value:username;age;birthday

第二種:key:userID+name        value:name

               key:userID+age           value:age

               key:userID+birthday    value:birthday;

      第一種缺點:當需要修改其中某一項,如生日時,需要把整個對象取出來,更新值之後,再放進去。同時在修改時還要保護並發,避免產生髒資料等;

      第二種缺點:使用者ID一直在重複的儲存,浪費記憶體;

如果用redis的hash類型,會是這樣存放的,如下圖:
                               

      key依舊是userID,但是value值卻是一個map,map中依舊存在key和value;key是姓名標籤,對應的value是具體的姓名;如果需要修改姓名值時,只加用userID+field(姓名)就可以修改姓名值了。這樣操作不需要重複儲存資料,也不需要想第一種那樣擔心,取出來之後,有並行作業。 相關命令列表

這裡只介紹常用的幾個

            

(這裡關於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.