备注:测试版本 redis 4.0.9
Table of Contents
- 哈希(Hash)类型命令
- 1.1 Hdel 命令
- 1.2 Hexists 命令
- 1.3 Hget 命令
- 1.4 Hgetall 命令
- 1.5 Hincrby 命令
- 1.6 Hincrbyfloat 命令
- 1.7 Hkeys 命令
- 1.8 Hlen 命令
- 1.9 Hmget 命令
- 1.10 Hmset 命令
- 1.11 Hset 命令
- 1.12 Hsetnx 命令
- 1.13 Hvals 命令
- 参考
哈希(Hash)类型命令
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。
命令 | 概述 |
---|---|
HDEL key field2 [field2] | 删除一个或多个哈希表字段 |
HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在 |
HGET key field | 获取存储在哈希表中指定字段的值 |
HGETALL key | 获取在哈希表中指定 key 的所有字段和值 |
HINCRBY key field increment | 为哈希表 key 中的指定字段的整数值加上增量 increment |
HINCRBYFLOAT key field increment | 为哈希表 key 中的指定字段的浮点数值加上增量 increment |
HKEYS key | 获取所有哈希表中的字段 |
HLEN key | 获取哈希表中字段的数量 |
HMGET key field1 [field2] | 获取所有给定字段的值 |
HMSET key field1 value1 [field2 value2 ] | 同时将多个 field-value (域-值)对设置到哈希表 key 中。 |
HSET key field value | 将哈希表 key 中的字段 field 的值设为 value |
HSETNX key field value | 只有在字段 field 不存在时,设置哈希表字段的值 |
HVALS key | 获取哈希表中所有值 |
HSCAN key cursor [MATCH pattern] [COUNT count] | 迭代哈希表中的键值对 |
1.1 Hdel 命令
语法:
HDEL key field2 [field2] 删除一个或多个哈希表字段
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> HDEL user:1 sex (integer) 1 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 127.0.0.1:6379>
复制
1.2 Hexists 命令
语法:
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy" 127.0.0.1:6379> 127.0.0.1:6379> hexists user:1 username (integer) 1 127.0.0.1:6379> hexists user:1 user_name (integer) 0 127.0.0.1:6379>
复制
1.3 Hget 命令
语法:
HGET key field 获取存储在哈希表中指定字段的值/td>
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy" 127.0.0.1:6379> hget user:1 username "mysql"
复制
1.4 Hgetall 命令
语法:
HGETALL key 获取在哈希表中指定 key 的所有字段和值
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy"
复制
1.5 Hincrby 命令
语法:
HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy" 127.0.0.1:6379> Hincrby user:1 age 1 (integer) 31 127.0.0.1:6379> Hincrby user:1 age -1 (integer) 30
复制
1.6 Hincrbyfloat 命令
语法:
HINCRBYFLOAT key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy" 127.0.0.1:6379> hincrbyfloat user:1 age 0.1 "30.1" 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30.1" 7) "sex" 8) "boy"
复制
1.7 Hkeys 命令
语法:
HKEYS key 获取所有哈希表中的字段
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy" 127.0.0.1:6379> hkeys user:1 1) "username" 2) "password" 3) "age" 4) "sex" 127.0.0.1:6379>
复制
1.8 Hlen 命令
语法:
HLEN key 获取哈希表中字段的数量
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy" 127.0.0.1:6379> hlen user:1 (integer) 4 127.0.0.1:6379>
复制
1.9 Hmget 命令
语法:
HMGET key field1 [field2] 获取所有给定字段的值
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy" 127.0.0.1:6379> hmget user:1 username password sex 1) "mysql" 2) "www.mysql.com" 3) "boy" 127.0.0.1:6379>
复制
1.10 Hmset 命令
语法:
HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "age" 6) "30" 7) "sex" 8) "boy"
复制
1.11 Hset 命令
语法:
HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。
复制
测试记录
127.0.0.1:6379> hset user:2 username oracle (integer) 1 127.0.0.1:6379> hget user:2 username "oracle" 127.0.0.1:6379> 127.0.0.1:6379> 127.0.0.1:6379> 127.0.0.1:6379> hset user:2 password www.oracle.com (integer) 1 127.0.0.1:6379> 127.0.0.1:6379> hgetall user:2 1) "username" 2) "oracle" 3) "password" 4) "www.oracle.com" 127.0.0.1:6379>
复制
1.12 Hsetnx 命令
语法:
HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值。
复制
测试记录
127.0.0.1:6379> hsetnx user:2 age 30 (integer) 1 127.0.0.1:6379> hgetall user:2 1) "username" 2) "oracle" 3) "password" 4) "www.oracle.com" 5) "age" 6) "30" 127.0.0.1:6379> hsetnx user:2 age 10 (integer) 0 127.0.0.1:6379> hgetall user:2 1) "username" 2) "oracle" 3) "password" 4) "www.oracle.com" 5) "age" 6) "30"
复制
1.13 Hvals 命令
语法:
HVALS key 获取哈希表中所有值
复制
测试记录
127.0.0.1:6379> hmset user:1 username mysql password www.mysql.com sex boy age 30 OK 127.0.0.1:6379> hgetall user:1 1) "username" 2) "mysql" 3) "password" 4) "www.mysql.com" 5) "sex" 6) "boy" 7) "age" 8) "30" 127.0.0.1:6379> 127.0.0.1:6379> hvals user:1 1) "mysql" 2) "www.mysql.com" 3) "boy" 4) "30" 127.0.0.1:6379>
复制
参考
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
Redis 挂 AGPLv3 “战袍”,开源江湖风云突变
青年数据库学习互助会
68次阅读
2025-05-08 10:04:49
Redis 8.0:开启一体化多功能开源数据平台新时代
老王两点中
52次阅读
2025-05-12 09:00:43
Redis改协议内幕曝光!核心开发者亲述被“踢出局”,外部贡献者几乎全跑光了!
老鱼笔记
47次阅读
2025-04-17 10:41:56
Redis数据库——Cluster集群模式
编程Cookbook
46次阅读
2025-04-16 15:34:44
亚马逊:MemoryDB,一款内存优先的云数据库
数据库应用创新实验室
31次阅读
2025-04-18 09:54:15
优雅遍历和删除特定开头的key
陌殇流苏
27次阅读
2025-04-25 12:17:03
redis初识
chirpyli
24次阅读
2025-05-07 17:32:31
Redis数据库——内存分配器
编程Cookbook
18次阅读
2025-04-14 12:59:10
Redka:基于 SQLite 的 Redis 替代方案
老柴杂货铺
17次阅读
2025-04-13 11:26:41
Redis数据库——持久化机制
编程Cookbook
14次阅读
2025-04-15 11:32:38