redis命令学习笔记(二):Hash

简介

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
可以看成具有KEY和VALUE的MAP容器,该类型非常适合于存储值对象的信息, 如:uname,uage等。该类型的数据仅占用很少的磁盘空间(相比于JSON) 。

Hash命令

赋值语法

HSET key field value [field value …]

Redis Hset 命令用于为哈希表中的字段赋值 。
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
如果字段已经存在于哈希表中,旧值将被覆盖。

Examples
127.0.0.1:6379> hset people name dsy age 22 height 175
(integer) 3
127.0.0.1:6379> keys *
1) "people"

取值语法

一、HGET key field

Redis Hget 命令用于返回哈希表中指定字段的值。

Examples
127.0.0.1:6379> hget people name
"dsy"
127.0.0.1:6379> hget people age
"22"
127.0.0.1:6379> hget people height
"175"

二、HGETALL key field

Redis Hgetall 命令用于返回哈希表中,所有的字段和值。
在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。

Examples

127.0.0.1:6379> hgetall people
1) "name"
2) "dsy"
3) "age"
4) "22"
5) "height"
6) "175"

三、HMGET key field [field …]

Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。
如果指定的字段不存在于哈希表,那么返回一个 nil 值。

Examples

127.0.0.1:6379> hmget people name age height weight
1) "dsy"
2) "22"
3) "175"
4) (nil)

四、HKEYS key

Redis Hkeys 命令用于获取哈希表中的所有字段名。

Examples

127.0.0.1:6379> hkeys people
1) "name"
2) "age"
3) "height"

删除语法

HDEL key field [field …]

Redis Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。

Examples

127.0.0.1:6379> hset cat number 2 color yellow
(integer) 2
127.0.0.1:6379> hdel cat number
(integer) 1
127.0.0.1:6379> hgetall cat
1) "color"
2) "yellow"

其他语法

一、HEXISTS key field

Redis Hexists 命令用于查看哈希表的指定字段是否存在。

Examples

127.0.0.1:6379> hexists people name
(integer) 1
127.0.0.1:6379> hexists people color
(integer) 0

二、HINCRBY key field increment

Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
增量也可以为负数,相当于对指定字段进行减法操作。
如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。

Examples
127.0.0.1:6379> hget people age
"22"
127.0.0.1:6379> hincrby people age 10
(integer) 32
127.0.0.1:6379> hincrby people age -10
(integer) 22
127.0.0.1:6379> hincrby people money -10
(integer) -10
127.0.0.1:6379> hgetall people
1) "name"
2) "dsy"
3) "age"
4) "22"
5) "height"
6) "175"
7) "money"
8) "-10"
127.0.0.1:6379> hincrby people name 1
(error) ERR hash value is not an integer

三、HINCRBYFLOAT key field increment

Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。

Examples
127.0.0.1:6379> hgetall people
1) "name"
2) "dsy"
3) "age"
4) "22"
5) "height"
6) "175"
7) "money"
8) "-10"
127.0.0.1:6379> hincrbyfloat people money 100.5
"90.5"

四、HLEN key

Redis Hlen 命令用于获取哈希表中字段的数量。

Examples
127.0.0.1:6379> hkeys people
1) "name"
2) "age"
3) "height"
4) "money"
127.0.0.1:6379> hlen people
(integer) 4

四、HVALS key

Redis Hvals 命令返回哈希表所有字段的值。

Examples

127.0.0.1:6379> hgetall people
1) "name"
2) "dsy"
3) "age"
4) "22"
5) "height"
6) "175"
7) "money"
8) "90.5"
127.0.0.1:6379> hkeys people
1) "name"
2) "age"
3) "height"
4) "money"
127.0.0.1:6379> hvals people
1) "dsy"
2) "22"
3) "175"
4) "90.5"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值