Hash數據類型使用很普遍,它同樣是key-value的方式來組織的,只是其value又包含多個field-fieldValue對。想要獲取某個fieldValue,可以通過key-field聯合來定位。
圖1. hash類型數據組織形式
從上“圖1”可以很好的hash數據的組織形式和用途。比如,系統里面有很多用戶,那么如何在redis里面存放用戶信息呢?“圖1”就展示了如何使用hash數據類型來存放用戶信息,使用key來唯一標識用戶id,value分別對應用戶的“名字、年齡”等信息。
1、常用命令
HSET key field value
HSETNX key field value
HGET key field
HMSET key field value [field value ...]
HMGET key field [field ...]
HGETALL key
HKEYS key
HVALS key
HINCRBY key field increment
HINCRBYFLOAT key field increment
HLEN key
HSTRLEN key field
HDEL key field [field ...]
HEXISTS key field
2、命令解析
①、HSET key field value / HSETNX key field value
功能:設置一個哈希值。HSETNX則會檢測field是否存在,如果不存在則添加,存在則不作處理。
時間復雜度:O(1)
example:
②、HGETALL key
功能:通過哈希的key來獲取其所有的field-fieldValue鍵值對。
時間復雜度:O(N) ,N是hash中field-fieldValue個數。
example:
③、HGETALL key / HKEYS key / HVALS key
功能:HGETALL獲取key下面的所有field-fieldValue對;HKEYS獲取key下面的所有field值;HVALS key獲取key下面所有的fieldValue值。
時間復雜度: O(N)
example:
④、HLEN key / HSTRLEN key field
功能:HLEN獲取哈希中field-fieldValue對的個數。HSTRLEN測量具體fieldValue的字符長度(3.2.0才有的命令)。
時間復雜度:O(1)
example: