Redis HGET 命令详细教程HGET读取 Hash 中指定字段的值。它是 Hash 最基础的读取命令一次只读取一个字段字段或 Key 不存在时返回空值Null。资料合集https://pan.quark.cn/s/10e98d308913、https://pan.quark.cn/s/f56bc69c5338一、概览与语法HGET key field项目说明数据类型Hash支持版本Redis 2.0.0 起keyHash 的 Keyfield一个完整字段名不支持通配符返回值字段值的字符串字段或 Key 不存在时为空值时间复杂度O(1)ACLread、hash、fast命令标记readonlyRESP2 使用空批量字符串Nil表示不存在RESP3 使用 Null客户端通常转换为None、nil或null。命令本身不区分“Key 不存在”和“字段不存在”两种情况返回相同的空值。$TRAE_REF二、基础示例以下命令在测试实例的 redis-cli 中执行。文中结果是预期说明未实际连接 Redis 运行。DEL tutorial:{hget}:user tutorial:{hget}:missing HSET tutorial:{hget}:user name Alice city Shanghai empty HGET tutorial:{hget}:user name HGET tutorial:{hget}:user empty HGET tutorial:{hget}:user age HGET tutorial:{hget}:missing name EXISTS tutorial:{hget}:user预期结果读取 name 返回Alice读取 empty 返回空字符串两者都是成功读取读取不存在的 age 返回(nil)在缺失 Key 上读取也返回(nil)EXISTS 返回1说明缺失字段的读取不会影响 Key 的存在性。三、空字符串与空值的区别这是 HGET 最容易出错的地方。字段值为空字符串表示字段存在但内容为空返回空值表示字段或 Key 不存在。两者在 Redis 协议层面不同但部分客户端解码后都表现为“假值”容易混淆。状态HGET 结果HEXISTS说明字段存在值为AliceAlice1正常读取字段存在值为空字符串1字段存在内容为空字段不存在空值0字段缺失Key 不存在空值0整个 Hash 缺失字段存在值为001文本0也是有效值字段存在值为nullnull1Redis 不把该文本当空值HSET tutorial:{hget}:user flag 0 HGET tutorial:{hget}:user flag HEXISTS tutorial:{hget}:user flag HGET tutorial:{hget}:user absent HEXISTS tutorial:{hget}:user absent前两次依次返回0和1后两次依次返回(nil)和0。在业务代码里应显式判断是否为 NonePython或 nullJava而不是用if value之类的真值判断否则值为0或时会被误判。四、错误类型与边界情况场景行为Key 是 String、List、Set 等非 Hash 类型报 WRONGTYPE 错误而不是返回空值字段名为空字符串合法使用HGET key 读取字段名为星号按字面字段名*处理不是通配匹配字段名大小写不同视为不同字段name 与 Name 互不相通Key 已到期视作不存在返回空值参数个数不对报语法错误HGET 只接受 key 与 field 两个参数SET tutorial:{hget}:wrong text HGET tutorial:{hget}:wrong name上述命令会报 WRONGTYPE。需要先确认类型时可执行 TYPE但要注意 TYPE 与 HGET 是两次独立调用中间可能有其他客户端改动该 Key。五、字段过期与 TTLHGET 是只读命令不会刷新整个 Key 的 TTL也不会刷新字段自身的 TTL。在 Redis 7.4 及以后字段可以单独设置过期时间此时字段到期后 HGET 会返回空值而同一 Hash 的其他字段仍可正常读取。DEL tutorial:{hget}:ttl HSET tutorial:{hget}:ttl stable yes temporary yes HEXPIRE tutorial:{hget}:ttl 2 FIELDS 1 temporary HGET tutorial:{hget}:ttl temporary及时执行时最后一次读取返回yes。等待超过 2 秒后再读取 temporary 会返回空值而 stable 仍为yes。因此“刚读到值”不代表后续仍存在需要长期有效的数据不应依赖临期字段。六、客户端示例前提为已安装 redis-py 并准备好本地测试实例。redis-py 的hget(name, key)中第二个参数是 Hash 字段名不是另一个 Redis Key无论是否启用解码字段缺失时都返回 None。importredis rredis.Redis(hostlocalhost,port6379,decode_responsesTrue)ktutorial:{hget}:pythontry:r.delete(k)r.hset(k,mapping{name:Alice,empty:,count:0})print(r.hget(k,name))# Aliceprint(r.hget(k,empty))# 空字符串不是 Noneprint(r.hget(k,count))# 0print(r.hget(k,absent))# Nonevaluer.hget(k,empty)print(valueisNone)# False字段存在print(value)# True内容为空ifr.hget(k,absent)isNone:print(字段不存在或 Key 不存在)finally:r.delete(k)r.close()Java 客户端Jedis示例返回 null 表示字段或 Key 不存在try(JedisjedisnewJedis(localhost,6379)){jedis.hset(tutorial:{hget}:java,name,Alice);Stringvaluejedis.hget(tutorial:{hget}:java,name);System.out.println(value);// AliceSystem.out.println(jedis.hget(tutorial:{hget}:java,x));// nulljedis.del(tutorial:{hget}:java);}七、与相近命令的区别命令读取范围说明HGET单个字段O(1)最常用HMGET多个指定字段一次返回多个值缺失字段对应空值HGETALL全部字段与值O(N)大 Hash 慎用HKEYS / HVALS全部字段名 / 全部值只取一侧HSTRLEN单个字段值的长度只返回长度不返回值HGETDEL读取并删除字段Redis 8.0 起适合一次性消费HGETEX读取并可选设置字段 TTLRedis 8.0 起读取同时续期需要多个字段时用 HMGET 一次取回比循环 HGET 更省往返但 HMGET 的结果同样不是原子快照仍可能与其他写入交错。八、原子性与常见模式“先 HGET 判断再决定是否写入”是典型的非原子流程两次调用之间其他客户端可能已经修改该字段。仅当字段不存在才写入应使用 HSETNX需要按旧值条件更新应使用 Lua 脚本或带 WATCH 的事务设计。单条 HGET 本身是原子的它返回的是执行瞬间的值。HGET 常用于读取对象属性、缓存字段、配置项。注意 HGET 返回的是字符串数值字段需要业务自行解析解析失败不代表 Redis 出错。不要用 HGET 遍历整个 Hash也不要为了取一个字段而调用 HGETALL。九、练习、排错与总结练习新建tutorial:{hget}:exercise写入 a1、b执行 HGET 读取 a 与 b预期分别得到1与空字符串读取 c预期为空值用 HEXISTS 分别验证三者预期为 1、1、0最后用 EXISTS 确认 Key 仍然存在。排错要点返回空值时用 HEXISTS 区分“字段不存在”还是“Key 不存在”报 WRONGTYPE 时用 TYPE 检查数据类型读到0却走了“空分支”说明业务用了真值判断unknown command 的情况不存在于 2.0 以上版本应检查是否拼写错误或客户端封装方法名不对。清理使用DEL tutorial:{hget}:user tutorial:{hget}:missing tutorial:{hget}:wrong tutorial:{hget}:ttl tutorial:{hget}:exercise。速记单字段读取、O(1)、只读不续期、空字符串与空值必须区分。
企业数字化 ERP 产品动态
相关推荐
自然语言驱动,自主算力支撑:沐曦打造 AI4Science 科研智能体 摘要
本文介绍了沐曦开源的生命科学研究工具库(MetaX LifeScience Toolkit)及其在科研智能体上的应用实践。该工具库基于开源 Harness 框架 OpenScience,将 RFdiffusion3、ProteinMPNN、Boltz-2 等领域模型封装为推理微服务(MIM&… · 2026/9/26 16:29:16
1. 为什么需要 blob:从 conventional resource 的困局说起 本文是《穿透虚拟化图形栈:virtio-gpu blob 机制全景解析》专栏的开篇。整个专栏将从 guest 使用 BO 的视角出发,系统梳理现代 virtio-gpu 性能的基石——blob 协议的机制与实现。仅从省去拷贝这一点来看,blob 的重要性无论怎样强调都不为过。… · 2026/9/26 16:29:16
骑马与砍杀战团MOD合集开发记:合并、排雷与数值平衡全解析 年初这几天我一直在做一件事:把硬盘里散了半年的《骑马与砍杀战团》MOD工程重新归拢。到1月15号,各个分支终于能合并成一个叫“但是XXX”的合集包,于是决定把开发情况整理成这篇汇总帖。所谓“但是XXX系列”,说白了就是每次发MOD都… · 2026/9/26 16:29:16
程序员狂喜[特殊字符]MiniMax-M1 解锁 AI 编程新姿势:Cline + TaoToken 配置实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 17:36:12
BERT微调与WeiboSenti100k中文情感分析最小可行系统 简介:一套面向计算机科学与技术、人工智能专业学生的中文情感分析系统实现方案,基于WeiboSenti100k微博评论语料与BERT预训练模型微调而成,系统设计在课设与毕设场景中具有较强参考性。内容涵盖完整模型微调源代码、训练与推理脚本、依赖清单… · 2026/9/26 17:36:12
uniapp如何集成第三方库:TaoToken 统一 Key 通道配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 17:36:12
Codex v0.135.0 更新日报:Vim 模式与 SQLite 会话存储的 SDK 接入配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 17:36:06
Claude Code模板实战:从上下文工程到团队统一AI编码行为 做claude-code-templates这套东西的起因特别朴素:我受够了每次开新会话都要把项目背景、代码规范、审查要求从头教一遍。Claude Code 本身能力很强,但它的“强”恰恰会让你付出代价——不给足约束,它就能在一句话的任务里给你自由发挥出三个不… · 2026/9/26 17:35:53
Workbuddy:面向业务的自动化技能操作系统 1. 这不是又一个“AI工具课”,而是一套能立刻塞进你日常工作流的生产力操作系统 你有没有过这种时刻:Excel里堆着37个待处理的货运单PDF,每份都要提取发货人、目的地、货品编码、重量,再填进ERP系统——手动复制粘贴2小时… · 2026/9/26 17:35:53
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46