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)Hash
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。