Redis的五大数据类型之哈希(Hash)的总结

Hash简介

Hash类似于Java中的Map,是一个 String 类型的 field 和 value 的映射表(键值对集合),并且特别适合用来存储对象。

Hash的常用操作命令总结

图片来源:https://www.runoob.com/redis/redis-hashes.html

部分命令使用实例

1.HSET、HGET 、HMSET、 HMGET

HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。
HGET key field
获取存储在哈希表key中指定字段field的值。使用如下:

127.0.0.1:6379> HSET user name z3
(integer) 1
127.0.0.1:6379> HGET user name
"z3"

HMSET key field1 value1 [field2 value2 ]
HMSET命令可以同时将多个 field-value (域-值)对设置到哈希表 key 中。
HMGET key field1 [field2]
HMGET命令可以批量返回key指定的哈希表中指定字段field的值,使用如下:

127.0.0.1:6379> HMSET user id 1 age 18
OK
127.0.0.1:6379> HMGET user id age
1) "1"
2) "18

2.HGETALL、 HKEYS、 HVALS

HGETALL key
获取在哈希表 key 中的所有字段和值。返回值:field1,value1,field2,value2,…,返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍。使用如下:

127.0.0.1:6379> HGETALL user
1) "name"
2) "z3"
3) "id"
4) "1"
5) "age"
6) "18"

HKEYS key
用于获取哈希表key中的所有字段field,使用如下:

127.0.0.1:6379> HKEYS user
1) "name"
2) "id"
3) "age"

HVALS key
用于获取哈希表key中的所有值value,使用如下:

127.0.0.1:6379> HVALS user
1) "z3"
2) "1"
3) "18"

3.HDEL

HDEL key field1 [field2]
删除哈希表key中的一个或多个指定的哈希表字段field,如下:

127.0.0.1:6379> HMSET user k1 v1 k2 v2
OK
127.0.0.1:6379> HDEL user k1 k2
(integer) 2
127.0.0.1:6379> HKEYS user
1) "name"
2) "id"
3) "age"

4.HLEN

HLEN key
获取哈希表key中字段field的数量,如下:

127.0.0.1:6379> HKEYS user
1) "name"
2) "id"
3) "age"
127.0.0.1:6379> HLEN user
(integer) 3

5.HEXISTS

HEXISTS key field
查看哈希表 key 中,指定的字段field是否存在。存在返回1,不存在返回0,使用如下:

127.0.0.1:6379> HEXISTS user k1
(integer) 0
127.0.0.1:6379> HEXISTS user name
(integer) 1

6.HINCRBY、HINCRBYFLOAT

HINCRBY key field increment
为哈希表 key 中的指定字段field的整数值加上增量 increment 。field对应的值必须是整数,成功执行后返回field更改后的值。如果key不存在,会创建一个新的哈希集并与key关联。如果字段不存在,则字段的值在该操作执行前被设置为0,HINCRBY支持的值的范围限定在64位有符号整数。使用如下:

127.0.0.1:6379> HINCRBY user name 2
(error) ERR hash value is not an integer
127.0.0.1:6379> HINCRBY user id 2
(integer) 3
127.0.0.1:6379> HGET user id
"3"

HINCRBYFLOAT key field increment
与HINCRBY相似,HINCRBYFLOAT为哈希表 key 中的指定字段field的浮点数值加上增量 increment 。increment和field对应的值可以是整数或浮点数,成功执行后返回field更改后的值。使用如下:

127.0.0.1:6379> HINCRBYFLOAT user id 1.5
"4.5"
127.0.0.1:6379> HINCRBYFLOAT user id 5
"9.5"
127.0.0.1:6379> hget user id
"9.5"

7.HSETNX

HSETNX key field value
只有在字段 field 不存在时,设置哈希表key中字段的值。成功返回1,失败返回0.使用如下:

127.0.0.1:6379> hget user id
"9.5"
127.0.0.1:6379> HSETNX user id 10
(integer) 0
127.0.0.1:6379> HSETNX user point 2
(integer) 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章