Redis学习04——存储哈希(hash)

--------------------- 
作者:愤怒的小明 
来源:CSDN 
原文:https://blog.csdn.net/qiwenmingshiwo/article/details/78118541 

Redis学习04存储哈希hash
一概述
二赋值
1 hset key field value
2 hmset key field1 value1 field2 value2
三取值
1 hget key field
2 hmget key field1 field2
3 hgetall key
四删除
1 hdel key field1 field2
2 del key
五增加数字
六其他命令
1 hexists key field
2 hlen key
3 hkeys key
4 hvals key
Redis学习04——存储哈希(hash)
一、概述
Redis中的 Hash类型可以看做是具有 String key 和 String value 的map容器。所以该类型非常适存储对象的信息。例如UserName、password和Age等。 
如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每个Hash可以存储 4294967295 个键值对。

 

二、赋值
2.1 hset key field value
命令:

hset key field value 
1
含义: 
为key设置 field/value对(键值对)

示例

[root@wiming bin]# ./redis-cli
127.0.0.1:6379> hset myhash name qiwenming
(integer) 1
1
2
3
4
2.2 hmset key field1 value1 field2 value2 ….
命令:

hmset key field value fied2 value2 .....
1
含义: 
设置key 的多个 field/value对(键值对)

示例

127.0.0.1:6379> hmset myhash username wiming age 18 gender 1
OK
1
2
三、取值
3.1 hget key field
命令:

hget key field 
1
含义: 
返回指定key中的field的值

示例

127.0.0.1:6379> hget myhash name
"qiwenming"
1
2
3
3.2 hmget key field1 field2 ….
命令:

hmget key field1 field2.....
1
含义: 
获取多个 field的值

示例

127.0.0.1:6379> hmget myhash username age gender
1) "wiming"
2) "18"
3) "1"
1
2
3
4
5
3.3 hgetall key
命令:

hgetall key 
1
含义: 
获取key中所有的 field-value

示例

127.0.0.1:6379> hgetall myhash
1) "name"
2) "qiwenming"
3) "username"
4) "wiming"
5) "age"
6) "18"
7) "gender"
8) "1"

1
2
3
4
5
6
7
8
9
10
11
四、删除
4.1 hdel key field1 field2
命令:

hdel key field1 field2 ....
1
含义: 
删除一个或者多个字段。返回值是被删除的字段个数

示例

127.0.0.1:6379> hmset myhash nm1 qwm nm2 xm
OK
127.0.0.1:6379> hgetall myhash
1) "username"
2) "wiming"
3) "age"
4) "18"
5) "gender"
6) "1"
7) "nm1"
8) "qwm"
9) "nm2"
10) "xm"
127.0.0.1:6379> hdel myhash nm1
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "username"
2) "wiming"
3) "age"
4) "18"
5) "gender"
6) "1"
7) "nm2"
8) "xm"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
4.2 del key
命令:

del key
1
含义: 
删除整个hash。这个指令是通用的,5种数据类型都可以它来删除

示例

127.0.0.1:6379> hgetall myhash
1) "username"
2) "wiming"
3) "age"
4) "18"
5) "gender"
6) "1"
7) "nm2"
8) "xm"
127.0.0.1:6379> del myhash
(integer) 1
127.0.0.1:6379> hgetall key
(empty list or set)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
五、增加数字
命令:

hincrby key field increment
1
含义: 
设置key中field的值增加increment(正数是加,负数是减)

示例

127.0.0.1:6379> hmset myhash username wiming age 18 gender 1
OK
127.0.0.1:6379> hincrby myhash age 5
(integer) 23
127.0.0.1:6379> hincrby myhash age -6
(integer) 17
1
2
3
4
5
6
7
六、其他命令
6.1 hexists key field
命令:

hexists key field
1
含义: 
判断指定key中的field是否存在

示例

127.0.0.1:6379> hexists myhash username
(integer) 1
127.0.0.1:6379> hexists myhash xxxxxx
(integer) 0

1
2
3
4
5
6
6.2 hlen key
命令:

hlen key
1
含义: 
获取key所包含的field的数量

示例

127.0.0.1:6379> hlen myhash
(integer) 3

1
2
3
4
6.3 hkeys key
命令:

hkeys key
1
含义: 
获取所有的key

示例

127.0.0.1:6379> hkeys myhash
1) "username"
2) "age"
3) "gender"

1
2
3
4
5
6
6.4 hvals key
命令:

hvals key
1
含义: 
获取所有的value

示例

127.0.0.1:6379> hvals myhash
1) "wiming"
2) "17"
3) "1"

posted @ 2019-04-18 20:40  一心二念  阅读(179)  评论(0编辑  收藏  举报