Hash (哈希)
經常使用命令
命令 |
含義 |
時間複雜度 |
hget、hset |
設置、獲取hash key對應的field的value |
O(1) |
hdel |
刪除hash key對應的一個或多個field |
O(N),N 爲要刪除的域的數量 |
hexists |
判斷hash key是否有指定的field |
O(1) |
hlen |
獲取hash key 的field的數量 |
O(1) |
hmget、hmset |
批量、獲取hash key的一批field對應的值 |
O(N),N 爲給定field的數量 |
hkeys、hvals、hgetall |
返回hash key對應全部的field、value、field和value |
O(N),N 爲哈希表的大小 |
hsetnx |
設置hash key 對應field (若是field已存在,則失敗) |
O(1) |
hincrby、hincrbyfloat |
hash key 對應的field的value自增initCounter |
O(1) |
hget、hset、hdel
- hget key field (獲取hash key對應的field的value)
- hset key field value (設置hash key 對應field的value)
- hdel key field (刪除hash key 對應field的value)
127.0.0.1:6379> hset user:1:info age 23
(integer) 1
127.0.0.1:6379> hget user:1:info age
"23"
127.0.0.1:6379> hset user:1:info name ronaldo
(integer) 1
127.0.0.1:6379> hgetall user:1:info
1) "age"
2) "23"
3) "name"
4) "ronaldo"
127.0.0.1:6379> hdel user:1:info age
(integer) 1
127.0.0.1:6379> hgetall user:1:info
1) "name"
2) "ronaldo"
hexists、hlen
- hexists key field (判斷hash key是否有指定的field)
- hlen key (獲取hash key 的field的數量)
127.0.0.1:6379> hgetall user:1:info
1) "name"
2) "ronaldo"
127.0.0.1:6379> hexists user:1:info name
(integer) 1
127.0.0.1:6379> hexists user:1:info age
(integer) 0
127.0.0.1:6379> hlen user:1:info
(integer) 1
hmget、hmset
- hmget key field1 field2 field3 ... (批量獲取hash key的一批field對應的值)
- hmset key field1 value1 field2 value2 ... (批量設置hash key的一批field value)
hgetall、hvals、hkeys
- hkeys key (返回hash key 對應全部field)
- hvals key (返回hash key 對應全部field的value)
- hgetall key (返回hash key 對應全部的field和value)
127.0.0.1:6379> hmset user:2:info age 30 name kaka page 50
OK
127.0.0.1:6379> hgetall user:2:info
1) "age"
2) "30"
3) "name"
4) "kaka"
5) "page"
6) "50"
127.0.0.1:6379> hkeys user:2:info
1) "age"
2) "name"
3) "page"
127.0.0.1:6379> hvals user:2:info
1) "30"
2) "kaka"
3) "50"
hsetnx、hincrby、hincrbyfloat
- hsetnx key field value (設置hash key 對應field (若是field已存在,則失敗))
- hincrby key field initCounter (hash key 對應的field的value自增initCounter)
- hincrbyfloat key field floatCounter (hincrby浮點數版)
實戰
hincrby user:1:info pageview count
String vs Hash
類似的API
String |
Hash |
get |
hget |
set、setnx |
hset、hsetnx |
del |
hdel |
incr、incrby、decr、decrby |
hincrby |
mset |
hmset |
mget |
hmget |
相關內容:
Redis學習筆記 - 數據類型與API(1)Key
Redis學習筆記 - 數據類型與API(2)String
Redis學習筆記 - 數據類型與API(3)List
Redis學習筆記 - 數據類型與API(4)Set
Redis學習筆記 - 數據類型與API(5)Sorted Set
Redis學習筆記 - 數據類型與API(6)Hashhtml