
- 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
含义:
为key设置 field/value对(键值对)
示例
[root@wiming bin]# ./redis-cli127.0.0.1:6379> hset myhash name qiwenming(integer) 1
2.2 hmset key field1 value1 field2 value2 ….
命令:
hmset key field value fied2 value2 .....
含义:
设置key 的多个 field/value对(键值对)
示例
127.0.0.1:6379> hmset myhash username wiming age 18 gender 1OK
三、取值
3.1 hget key field
命令:
hget key field
含义:
返回指定key中的field的值
示例
127.0.0.1:6379> hget myhash name"qiwenming"
3.2 hmget key field1 field2 ….
命令:
hmget key field1 field2.....
含义:
获取多个 field的值
示例
127.0.0.1:6379> hmget myhash username age gender1) "wiming"2) "18"3) "1"
3.3 hgetall key
命令:
hgetall key
含义:
获取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"
四、删除
4.1 hdel key field1 field2
命令:
hdel key field1 field2 ....
含义:
删除一个或者多个字段。返回值是被删除的字段个数
示例
127.0.0.1:6379> hmset myhash nm1 qwm nm2 xmOK127.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) 1127.0.0.1:6379> hgetall myhash1) "username"2) "wiming"3) "age"4) "18"5) "gender"6) "1"7) "nm2"8) "xm"
4.2 del key
命令:
del key
含义:
删除整个hash。这个指令是通用的,5种数据类型都可以它来删除
示例
127.0.0.1:6379> hgetall myhash1) "username"2) "wiming"3) "age"4) "18"5) "gender"6) "1"7) "nm2"8) "xm"127.0.0.1:6379> del myhash(integer) 1127.0.0.1:6379> hgetall key(empty list or set)
五、增加数字
命令:
hincrby key field increment
含义:
设置key中field的值增加increment(正数是加,负数是减)
示例
127.0.0.1:6379> hmset myhash username wiming age 18 gender 1OK127.0.0.1:6379> hincrby myhash age 5(integer) 23127.0.0.1:6379> hincrby myhash age -6(integer) 17
六、其他命令
6.1 hexists key field
命令:
hexists key field
含义:
判断指定key中的field是否存在
示例
127.0.0.1:6379> hexists myhash username(integer) 1127.0.0.1:6379> hexists myhash xxxxxx(integer) 0
6.2 hlen key
命令:
hlen key
含义:
获取key所包含的field的数量
示例
127.0.0.1:6379> hlen myhash(integer) 3
6.3 hkeys key
命令:
hkeys key
含义:
获取所有的key
示例
127.0.0.1:6379> hkeys myhash1) "username"2) "age"3) "gender"
6.4 hvals key
命令:
hvals key
含义:
获取所有的value
示例
127.0.0.1:6379> hvals myhash1) "wiming"2) "17"3) "1"