1. 程式人生 > >Redis數據操作之字符串與散列鍵的區別 | Redis

Redis數據操作之字符串與散列鍵的區別 | Redis

等等 如果 mes receiver 命名 刪除 讓我 都是 服務器

| 如果散列鍵能做的事情,字符串鍵也能做,那麽
我們為什麽不直接使用字符串鍵呢?
| 散列的好處 
-- 將數據放在同一個地方
    # 散列可以讓我們將一些相關的信息儲存在同一個額地方,而不是直接分散地
    儲存在整個數據中裏面,這不僅方便了數據管理,還可以盡量避免誤操作發生。
    # 舉個例子,要刪除字符串鍵記錄的消息信息,我們需要輸入三個鍵,而刪除
    散列鍵儲存的消息信息,我們只要輸入一個鍵
    字符串鍵:id >> 10086; sender >> peter; receiver >> jack
    散列鍵:message 
>> (id >> 10086; sender >> peter; receiver >> jack) -- 避免鍵名沖突 # 在字符串鍵的介紹中命名鍵的時候,使用分隔符來避免命名沖突, 但最好的辦法是直接使用散列鍵來儲存簡直對數據 # 直接使用message:<id>散列鍵來保濕消息自信息,並將於消息有關ed各項 信息儲存到散列的各個域裏面。 # 保證了數據庫中每個鍵的作用都是固定的,單一的,儲存的信息都是被 隔離的,從而最大限度地避免鍵名沖突。 # 隨著與數量的增加,只用散列會比使用字符串少創建很多數據庫鍵。
-- 減少內存占用 # 在一般情況下,保存相同數量的鍵值對信息,使用散列鍵比使用字符串鍵 更節約內存。 # 因為在數據庫裏面創建每一個鍵都帶有數據庫附加的管理信息(比如這個鍵 的類型、最後一次訪問的時間等等),所以數據庫裏面的鍵越多,服務器在儲 存附加管理信息方面耗費的內存就越多,花在管理數據庫鍵上的CPU會越多。 # 當散列包含的域值對數量比較少的時候,Redis會自動使用一種占用內存非常 少的數據結構來做散列的底層是西南,在散列的數量比較多的時候,這一措施 對減少內存有很大的幫助。 --結論 只要有可能的話,就盡量使用散列鍵而不是字符串鍵來儲存鍵值對數據,因為散列鍵管理方便,能夠避免鍵名沖突,並且還能夠節約內存。
-- 一些沒辦法使用散列鍵來替代字符串鍵的情況 1.使用二進制操作命令:因為Redis目前支持對字符串進行setbit,getbit,bitop 等操作,如果你想使用這些操作,name只能使用字符串鍵。 2.使用過期功能:Redis的鍵過期功能目前只能對鍵進行過期操作,而不能對散 列的域進行過期操作,因此如果你要對鍵值對數據使用過期功能的話,那麽 只能把簡直對儲存在字符串裏面。

Redis數據操作之字符串與散列鍵的區別 | Redis