Linux:Redis哈希(hash)命令

Redis哈希命令

1.HSET/HMSET/HGET/HMGET/HGETALL/HDEL

Redis Hset 命令用于为哈希表中的字段赋值 。
Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。
Redis Hget 命令用于返回哈希表中指定字段的值。
Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。
Redis Hgetall 命令用于返回哈希表中,所有的字段和值。
Redis Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。

127.0.0.1:6379> hset key one '123'  # 设置一个字段并赋值
(integer) 1
127.0.0.1:6379> hmset key two '456' three '789'  # 设置多个字段并赋值
OK
127.0.0.1:6379> hget key one  # 获取一个字段得值123"
127.0.0.1:6379> hmget key one two  # 获取多个字段的值
1) "123"
2) "456"
127.0.0.1:6379> hgetall key  # 获取所有的key
1) "one"
2) "123"
3) "two"
4) "456"
5) "three"
6) "789"
127.0.0.1:6379> hdel key three  # 删除某个字段
(integer) 1
127.0.0.1:6379> hgetall key
1) "one"
2) "123"
3) "two"
4) "456"

2.HEXISTS(存在不存在)

Redis Hexists 命令用于查看哈希表的指定字段是否存在。如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。

127.0.0.1:6379> hexists key one
(integer) 1

3.HINCRBY/HINCRBYFLOAT

Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。

127.0.0.1:6379> hincrby key one 123  # 加指定值
(integer) 246
127.0.0.1:6379> hincrbyfloat key one 0.123  # 加浮点数
"246.123"

4.HKEYS/HVALS

Redis Hkeys 命令用于获取哈希表中的所有域(field),返回包含哈希表中所有域(field)列表。
Redis Hvals 命令返回哈希表所有域(field)的值,返回一个包含哈希表中所有域(field)值的列表。 当 key 不存在时,返回一个空表。

127.0.0.1:6379> hkeys key  # 返回所有键
1) "one"
2) “two"
3) “three”
127.0.0.1:6379> hvals key  # 返回所有值
1) "123"
2) "456"
3) "789"

5.HLEN

Redis Hlen 命令用于获取哈希表中字段的数量。返回哈希表中字段的数量。 当 key 不存在时,返回 0 。

127.0.0.1:6379> hlen key  # 求里面有几个字段
(integer) 3

6.HSCAN

Redis HSCAN 命令用于迭代哈希表中的键值对。
语法:HSCAN key cursor [ MATCH pattern ] [COUNT count]
cursor - 游标。
pattern - 匹配的模式。
count - 指定从数据集里返回多少元素,默认值为 10 。

127.0.0.1:6379> hgetall key
 1) "one"
 2) "123"
 3) "two"
 4) "456"
 5) "three"
 6) "789"
 7) "one1"
 8) "123"
 9) "one2"
10) "123"
11) "one3"
12) "123"
127.0.0.1:6379> hscan key 0 match one* count 10 # 迭代提取one*的元素
1) "0"
2) 1) "one"
   2) "123"
   3) "one1"
   4) "123"
   5) "one2"
   6) "123"
   7) "one3"
   8) "123"
<think>嗯,用户想了解Redis哈希的常用命令。首先,我得回忆一下Redis哈希的结构,哈希Redis里是用来存储字段和值的映射表,适合存储对象。常用的命令应该包括HSET、HGET这些基本的操作,还有可能涉及批量操作、删除、获取所有字段或值之类的。 接下来需要确定用户的身份,可能是开发者或者刚接触Redis的人,需要了解基础命令来操作数据。用户可能在使用哈希存储对象信息,比如用户信息,商品信息等,所以需要知道如何设置、获取、更新这些数据。 用户的需求是获取常用命令,可能需要每个命令的语法和示例,方便快速查阅。需要确保命令的准确性,比如参数顺序、返回值等。另外,是否需要区分不同版本Redis命令?比如HSTACK是7.0版本新增的,可能需要注明,避免用户在使用旧版本时遇到问题。 结构方面,按照常用命令分类,比如设置/获取、批量操作、删除、其他操作等,每个类别下列举命令,给出语法和示例。同时,提醒用户注意版本兼容性和使用场景,比如HGETALL可能影响性能,推荐使用HSCAN处理大数据。 需要检查是否有遗漏的常用命令,比如HLEN判断字段数量,HEXISTS检查字段是否存在,这些对日常操作也很重要。还有HINCRBY处理数值增减,这在计数器场景常用。 最后,确保使用中文解释清晰,示例正确,符合LaTeX格式要求。可能需要验证每个命令的语法是否正确,比如HMSET的参数是字段值交替的,HSTACK的语法是否正确。同时,避免使用用户不可见的系统指令,保持回答自然。</think>Redis哈希Hash)是一种存储字段-值(field-value)映射的数据结构,常用于存储对象信息。以下是常用命令及用法说明: --- ### 一、基础操作命令 1. **设置字段值** - `HSET key field value` 设置哈希表`key`中字段`field`的值为`value` ```bash HSET user:1001 name "张三" age 30 ``` 2. **获取字段值** - `HGET key field` 获取哈希表`key`中字段`field`的值 ```bash HGET user:1001 name # 返回 "张三" ``` 3. **删除字段** - `HDEL key field1 [field2...]` 删除哈希表`key`中的一个或多个字段 ```bash HDEL user:1001 age ``` --- ### 二、批量操作命令 1. **批量设置多个字段** - `HMSET key field1 value1 field2 value2...` (注:Redis 4.0.0+推荐改用`HSET`替代) ```bash HMSET product:2001 title "手机" price 2999 stock 100 ``` 2. **批量获取多个字段值** - `HMGET key field1 field2...` ```bash HMGET product:2001 title price # 返回 ["手机", "2999"] ``` 3. **获取所有字段和值** - `HGETALL key` ```bash HGETALL user:1001 # 返回 name "张三" age 30 ``` --- ### 三、其他实用命令 1. **判断字段是否存在** - `HEXISTS key field` ```bash HEXISTS user:1001 email # 返回 0(不存在) ``` 2. **获取所有字段名** - `HKEYS key` ```bash HKEYS product:2001 # 返回 ["title", "price", "stock"] ``` 3. **获取所有字段值的数量** - `HLEN key` ```bash HLEN user:1001 # 返回 2 ``` 4. **数值增减** - `HINCRBY key field increment` ```bash HINCRBY product:2001 stock -5 # 库存减少5 ``` --- ### 四、新版本扩展命令Redis 7.0+) 1. **合并多个哈希表** - `HSTACK target key1 key2...` 将多个哈希表合并到`target`中(相同字段覆盖) --- ### 五、使用建议 1. **适用场景** - 存储对象属性(用户信息、商品详情等) - 替代多个`String`键的场景,减少内存碎片 2. **注意事项** - `HGETALL`在字段较多时可能阻塞服务,推荐用`HSCAN`分批获取 - 优先使用`HSET`替代弃用的`HMSET` --- 通过上述命令,您可以高效操作Redis哈希结构。建议结合业务场景选择合适命令,并关注不同Redis版本的特性差异。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值