redis 常用數據類型操作四 哈希(Hash)


redis 哈希Hash

簡介

redis hash是一個鍵值對集合

redis hash 是一個string 類型的 fieldvalue 的映射表,hash特別適合用於存儲對象,類似於C#里面的Dictionary<key,value>

用戶ID查找的key,存儲的value用戶包含姓名,年齡,生日等信息,如果用普通的key/value結構來存儲,

主要有以下兩種存儲方式

第一種:序列化對象為json字符串 user={id:1,name:"july",age:20}

缺點:如果需要修改對象的某些屬性值,先要將字符串反序列化為對象,然后再對其進行修改,序列化重新存儲

第二種:分開存儲,userid :1 ,username:"july"

缺點:數據太分散了,數據量大的時候,數據特別混亂

第三種:使用hash field value 實現映射關系進行存儲

 

 

優點:存儲方便,存/取/改值方便

常用命令

hset <key> <field> <value> 給key集合中的<field>鍵賦值<value>

 

 

hget <key> <field> 從key集合<field>取出<value>

hmset <key1> <field1> <value1> <field2> <value2> 批量設置hash值

 

 

hexists <key> <field> 查看哈希表key中,給定域field是否存在

 

 

hkeys <key> 列出該hash集合中所有field

hvals <key> 列出該hash集合中所有value

 

 

hincrby <key><field> <increment> 為哈希表key中的域field增加上增量1 -1

 

 

hsetnx <key> <field> <value> 將哈希表key 中的域field的值設置為value,當且僅當field不存在

 

 

數據結構

Hash 數據對應的數據結構是兩種:ziplist(壓縮列表),hashtable(哈希表)。當field-value長度較短且個數較少時,使用ziplist,否則使用hashtable。

 

redis 有序集合(zset)
簡介
 
redis hash是一個鍵值對集合
 
redis hash 是一個string 類型的 field 和 value 的映射表,hash特別適合用於存儲對象,類似於C#里面的Dicti保障value的唯一性,可以通過value找到對應score值

(2)跳躍表,跳躍表的目的是在於給元素value排序,根據socre的范圍來獲取元素列表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM