跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
编程语言java算法

Redis Hash 类型详解与常用命令实战

Redis Hash 类型适合存储对象数据,支持字段级增删改查及原子数值操作。核心命令包括 hset、hget、hdel 等基础读写,以及 hmget、hgetall 批量获取。需注意 hgetall 在大对象下可能阻塞单线程,生产环境建议按需查询或分片。配合 hincrby 可实现计数器场景,是构建高性能缓存与配置管理的关键数据结构。

静心发布于 2026/3/22更新于 2026/5/54 浏览
Redis Hash 类型详解与常用命令实战

Redis Hash 基础

Redis 的 Hash 类型本质上是键值对的集合,字段(field)和值(value)都支持字符串或数字。它非常适合存储对象类数据,比如用户信息、配置项等。

底层实现上,Redis 会根据数据量自动选择压缩列表(ziplist)或哈希表(hashtable),在空间利用率和查询效率之间取得平衡。作为 Redis 中存储结构化数据的核心类型之一,Hash 支持单字段或多字段的增删改查,以及字段存在性判断和原子数值操作。

需要注意的是,Redis 本身基于 KV 结构,Hash 实际上是'键中的键'。在 Hash 内部,我们用 field 来替代原本的 Key 位置,避免命名冲突。

核心读写指令

hset:设置字段

用于创建或更新 Hash 中的字段。如果字段已存在,则覆盖旧值;如果不存在,则新建。

hset key field value

返回值为 1 表示新建成功,0 表示更新成功。一个 Key 下可以包含多个 Field,每个 Field 对应唯一的 Value。

hget:获取字段

通过 Key 和 Field 获取对应的 Value。该命令仅支持单次访问单个字段,无法批量获取。

hget key field

hdel:删除字段

删除指定的 Field 及其对应的 Value。注意,只要 Key 下还有其他 Field,执行删除后 Key 本身不会消失。

hdel key field

批量与统计指令

hmget:批量获取

当需要一次性读取多个字段的值时,使用此命令比多次调用 hget 更高效。

hmget key field [field ...]

hkeys / hvals:获取所有字段或值

  • hkeys 返回 Key 下的所有字段名。
  • hvals 返回 Key 下的所有值。
hkeys key
hvals key

注意:这两个命令配合 hgetall 使用时需谨慎。由于 Redis 是单线程架构,如果 Hash 中的数据量非常大,这些命令会阻塞主线程,影响其他请求。生产环境中建议先确认数据规模,避免直接对大对象执行全量扫描。

hgetall:获取全部键值对

一次性返回 Key 下所有的 Field 和 Value 映射。

hgetall key

同样受限于上述性能问题,仅在数据量可控时使用。

hexists:判断字段存在

检查指定 Field 是否存在于 Key 中。存在返回 1,否则返回 0。

hexists key field

hlen:统计字段数量

返回 Key 下 Field 的数量。如果 Key 不存在,返回 0。

hlen key

特殊场景指令

hsetnx:条件设置

仅在字段不存在时设置值。如果字段已存在,则不执行任何操作并返回 0。常用于防止重复写入的场景。

hsetnx key field value

hincrby / hincrbyfloat:数值增减

用于对 Hash 中的数值型字段进行自增或自减操作。

  • hincrby 处理整数。
  • hincrbyfloat 处理浮点数,但也兼容整数运算。
hincrby key field increment
hincrbyfloat key field increment

负数参数可实现减法操作。这两个命令是构建计数器、排行榜等功能的基石。

总结

Hash 类型在 Redis 中扮演着重要角色,特别适合结构化数据的存储。掌握上述命令能帮助你高效管理对象数据。在实际开发中,务必关注大 Key 带来的性能风险,合理设计数据结构,确保系统稳定性。

目录

  1. Redis Hash 基础
  2. 核心读写指令
  3. hset:设置字段
  4. hget:获取字段
  5. hdel:删除字段
  6. 批量与统计指令
  7. hmget:批量获取
  8. hkeys / hvals:获取所有字段或值
  9. hgetall:获取全部键值对
  10. hexists:判断字段存在
  11. hlen:统计字段数量
  12. 特殊场景指令
  13. hsetnx:条件设置
  14. hincrby / hincrbyfloat:数值增减
  15. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • LangChain 开发环境准备:AI 大模型私有部署技术指南
  • 构建高并发AI服务网关:C++与gRPC的工程实践
  • AI 大模型应用开发体系化学习路线
  • 奥迪 A6/A7 CarPlay 激活与 8511 地图安装指南
  • AI 产品经理入门指南:核心职责与技能路线
  • 无人机低空视觉数据集全景解读:从单机感知到具身智能
  • Stable Diffusion 3 Medium 模型特性与 ComfyUI 部署指南
  • Windows 10 安装 WSL2 与 Ubuntu 24.04 并配置 CUDA 环境
  • 双指针算法详解(上)
  • 职场与软件开发中的细节内涵及提升
  • OpenCode 与 Agent Skills 安装与使用指南
  • OpenClaw 启动后 Web 控制面板返回 Not Found 错误排查
  • Linux 系统安装 MATLAB 完整指南:下载、配置与启动
  • Whisper-Tiny.en:超轻量英文语音识别模型解析
  • 文心一言开源模型部署及多维性能测评
  • Copilot Cowork 核心逻辑与 Kotlin AI Agent 实现
  • 基于 AI 的 B 站充电视频页面结构分析与鉴权实现
  • Docker+Ollama 本地部署 DeepSeek 大模型指南
  • Java 智能家居实时气候控制系统软件架构解析
  • VS Code 远程 SSH 连接下 Copilot Claude Agent 配置与修复

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online