Redis 哈希/散列处理

使用Redis的哈希功能

1、HSET 命令


用于添加一个键值到指定的散列中。如果键不存在,则生成一个新的键。

如果指定的键存在,则其值会被新的值覆盖。

127.0.0.1:6379> HSET KEY FILED VALUE 

例如,

127.0.0.1:6379> HSET HTBL NAME "randyma"
(integer) 1
127.0.0.1:6379> HSET HTBL AGE 30
(integer) 1
127.0.0.1:6379> HSET HTBL SEX "MALE"
(integer) 1
127.0.0.1:6379> HGET HTBL NAME
"randyma"
127.0.0.1:6379> HGET HTBL AGE
"30"
127.0.0.1:6379> HGET HTBL SET
(nil)
127.0.0.1:6379> HGET HTBL SEX
"MALE"

2、HGET


根据给定的键名获取指定哈希中相应的键值。

如果该键名不存在,则返回nil。

127.0.0.1:6379> HGET KEY FILED

例如,

127.0.0.1:6379> HGET HTBL NAME
"randyma"
127.0.0.1:6379> HGET HTBL NAME1
(nil)

3、HDEL


用于删除指定的散列中一个键。如果该键存在,删除后返回1,如果该键不存在,删除后返回0。

127.0.0.1:6379> HDEL KEY FILED [field ...]

例如,

127.0.0.1:6379> HDEL HTBL SET
(integer) 0
127.0.0.1:6379> HDEL HTBL SEX
(integer) 1
127.0.0.1:6379> HDEL HTBL AGE
(integer) 1
127.0.0.1:6379> HGET HTBL AGE
(nil)
127.0.0.1:6379> HGET HTBL SEX
(nil)

4、HGETALL


用于获取指定的哈希中全部的键名与键值。键名与键值是分行打印的。

如果指定的哈希不存在,则返回错误说明。

127.0.0.1:6379> HGETALL KEY 

例如,

127.0.0.1:6379> HGETALL htbl
(empty list or set)
127.0.0.1:6379> HGETALL HTBL
1) "NAME"
2) "randyma"

5、HEXISTS


用于检测指定的键名在指定的哈希中是否存在。

如果键名存在,则返回1。

如果键名不存在,则返回0。

127.0.0.1:6379> HEXISTS KEY FILED 

例如,

127.0.0.1:6379> HEXISTS HTBL SEX
(integer) 0
127.0.0.1:6379> HEXISTS HTBL AGE
(integer) 0
127.0.0.1:6379> HEXISTS HTBL NAME
(integer) 1

6、HINCRBY


用于修改指定哈希中特定键名的值,该键名存在,则增加指定值的大小。

如果不存在,则返回0。如果该键名的值不是数值类型,则返回错误说明。

127.0.0.1:6379> HINCRBY KEY FILE INCREMENT 

例如,

127.0.0.1:6379> HINCRBY HTBL NAME 1
(error) ERR hash value is not an integer
127.0.0.1:6379> HSET HTBL AGE 30
(integer) 1
127.0.0.1:6379> HINCRBY HTBL AGE 1
(integer) 31
127.0.0.1:6379> HGETALL HTBL
1) "NAME"
2) "randyma"
3) "AGE"
4) "31"

7、HINCRBYFLOAT


用于修改指定哈希中特定键名的值,该键名存在,则增加指定值的大小。

如果不存在,则返回0。如果该键名的值不是浮点数类型,则返回错误说明。

127.0.0.1:6379> HINCRBYFLOAT KEY FILED INCREMENT 

例如,

127.0.0.1:6379> HSET HTBL WEIGHT 64.5
(integer) 1
127.0.0.1:6379> HINCRBYFLOAT HTBL WEIGHT 0.5
"65"
127.0.0.1:6379> HGETALL HTBL
1) "NAME"
2) "randyma"
3) "AGE"
4) "31"
5) "WEIGHT"
6) "65"
127.0.0.1:6379> HINCRBYFLOAT HTBL NAME 0.5
(error) ERR hash value is not a valid float

8、HKEYS


用于获取指定哈希中所有的键名。

127.0.0.1:6379> HKEYS KEY 

例如,

127.0.0.1:6379> HKEYS HTBL
1) "NAME"
2) "AGE"
3) "WEIGHT"

9、HVALS


用于获取指定哈希中所有键的键值。

127.0.0.1:6379> HVALS KEY 

例如,

127.0.0.1:6379> HVALS HTBL
1) "randyma"
2) "31"
3) "62.5"
4) "178.0"
5) "13700001111"

10、HLEN


用于获取指定哈希中键的数量。如果指定的哈希不存在或者为空,则返回0。

127.0.0.1:6379> HLEN KEY 

例如,

127.0.0.1:6379> HLEN HTBL
(integer) 3
127.0.0.1:6379> HLEN KEY
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> HLEN h
(integer) 0

11、HMGET


根据给出的键名获取指定哈希中的键值。

如果给出的键名不存在,则该键的键值返回nil。

127.0.0.1:6379> HMGET KEY FILED [field ...]

例如,

127.0.0.1:6379> HMGET HTBL NAME AGE WEIGHT
1) "randyma"
2) "31"
3) "65"
127.0.0.1:6379> HMGET HTBL NAME AGE WEIGH
1) "randyma"
2) "31"
3) (nil)

12、HMSET


根据给出的键名获取指定哈希中的键值。

如果给出的键名不存在,则该键的键值返回nil。

127.0.0.1:6379> HMSET KEY FILED VALUE [field value ...]

例如,

127.0.0.1:6379> HMSET HTBL WEIGHT 62.5 HEIGHT 178.0
OK
127.0.0.1:6379> HMGET HTBL NAME AGE WEIGHT HEIGHT
1) "randyma"
2) "31"
3) "62.5"
4) "178.0" 

13、HSETNX


根据给出的键名在指定的哈希中设置键值。

如果键名存在,则不进行覆盖,返回0。

如果键名不存在,则添加新的键值,返回1。 

127.0.0.1:6379> HSETNX KEY FILED VALUE 

例如,

127.0.0.1:6379> HSETNX HTBL PHONE 13700001111
(integer) 1
127.0.0.1:6379> HSETNX HTBL PHONE 1370000111
(integer) 0

 

转载于:https://www.cnblogs.com/randyma/p/6861309.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值