跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQLjava算法

Redis Hash 类型及相关指令详解

Redis 哈希类型是键值对的集合,适合存储结构化数据。 hset、hget、hdel、hkeys、hvals、hgetall、hexists、hmget、hlen、hsetnx、hincrby、hincrbyfloat 等核心指令的语法与用法,并提示了全量查询命令在大数据量下的性能风险。

云间漫步发布于 2026/2/8更新于 2026/8/1742 浏览
Redis Hash 类型及相关指令详解

1. Hash 介绍

Redis 哈希类型是键值对的集合,字段与值均支持字符串、数字等类型,适合建模用户信息、配置项等对象类数据。其支持单字段/多字段的增删改查、字段存在性判断、值自增自减等原子操作,且底层通过压缩列表或哈希表优化存储,空间利用率高、查询效率快,是 Redis 中存储结构化数据的核心类型之一。

在 Redis 中因为本身就是按照哈希的 KV 结构来进行存储的,所以当我们想要使用 Redis 里面的哈希的时候,实际上是哈希的哈希。在后者中,则用 field 来代替原本的 Key 位置,防止和前面的哈希名字相同。

2. hset

该指令用于在 Redis 中创建一个哈希的键值对。

语法:

hset key field value

一个 key 可以有很多个 field,一个 field 和一个 value 一一对应。

文章配图

当对一个 field 重新使用 hset 时,会更新它里面的 value。同时一个 key 也可以对应多个 field。

文章配图

3. hget

该指令通过 key 和 field 来获取对应的 value。

语法:

hget key field

hget 相当于通过两个关键字找到对应的 value。它不支持一次访问多个 value,后续有特定指令可获取多个 value。

文章配图

4. hdel

该指令用于删除 value 和 field。

语法:

hdel key field

hdel 删除的是 field 和它对应的 value,不会把 key 给删除(在 key 还有其他对应 field 的时候)。如果 key 下还有其他 field,访问剩余的 field 依然成功。

文章配图

5. hkeys

该指令用于查找这个 key 里面所有的 field,返回值是该 key 对应的全部 field。

语法:

hkeys key

注意:hkeys * 返回空数组是因为 Redis 里 * 不是通配符用法,hkeys 只能跟具体的键名,不能直接用通配符匹配多个哈希键。

文章配图

文章配图

6. hvals

该指令返回这个 key 里面所有的 value。

语法:

hvals key

文章配图

7. hgetall

该指令可以直接获得这个 key 所对应的所有 field 和 value。

语法:

hgetall key

文章配图

注意: 无论是 hvals、hkeys 或者 hgetall,它们在很多情况下是不被推荐使用的。因为我们并不知道这个 key 里面到底有多少个哈希键值对,由于 Redis 是单线程的数据库,如果数量很多会让 Redis 卡住。

8. hexists

该指令用来判断某一个 field 是否存在,或者说判断通过两个关键字是否可以找到值。

语法:

hexists key field

如果 value 存在的话就返回 1,不存在就返回 0。

文章配图

9. hmget

该指令可以一次获取多个 value 的值。

语法:

hmget key field [field ...]

输入对应的 key 和 field,就可以批量得到对应的 value。

文章配图

10. hlen

该指令返回这个 key 所对应的 field 的个数。如果这个 key 不存在的话则返回 0。

语法:

hlen key

如果 k1 里面有三个哈希键值对,调用 hlen 时会返回 3;而 k2 不存在,则返回 0。

文章配图

11. hsetnx

该指令是在字段不存在的情况下,设置 hash 中的字段和值。

语法:

hsetnx key field value

在 k1 里面没有 f3 的时候用 hsetnx 是可以成功的,而有了之后再用 hsetnx 来插入 f3 是会失败的。

文章配图

12. hincrby

该指令给 field 对应的那个 value 的值进行增加或者减少操作。

语法:

hincrby key field increment

该指令既可以加数字也可以减数字,只要我们在原本的数字前面加一个负号即可。

文章配图

13. hincrbyfloat

该指令可以给浮点数进行浮点数的加减。注意:这个指令不仅给浮点数用,也可以给整数用,同时它的值也可以为整数。

语法:

hincrbyfloat key field increment

hincrbyfloat 既可以给整数加浮点数,也可以给浮点数加整数。

文章配图

目录

  1. 1. Hash 介绍
  2. 2. hset
  3. 3. hget
  4. 4. hdel
  5. 5. hkeys
  6. 6. hvals
  7. 7. hgetall
  8. 8. hexists
  9. 9. hmget
  10. 10. hlen
  11. 11. hsetnx
  12. 12. hincrby
  13. 13. hincrbyfloat
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • AIGC 工作流商业化实战:如何将代码转化为可交易的技术资产
  • Faster-Whisper 本地部署及实时语音转文本方案
  • 前端加密实战:encrypt-labs 靶场环境与解密技巧
  • C++ 继承入门:从概念定义到默认成员函数详解
  • OpenClaw 本地极简部署与 QQ 机器人接入教程
  • Flutter for OpenHarmony 集成 dart_openai 实现 AIGC 功能
  • C++ 继承机制详解:从基础到多继承与组合
  • CentOS 下五种 Python 定时发送邮件方案实战
  • AI Copilot 概念及多领域应用场景
  • 网站漏洞挖掘思路与常见渗透测试方法
  • 基于 Java SSM 的网上挂号系统设计与实现
  • 基于 SSM 框架的 Web 房屋销售管理系统设计与实现
  • GitHub Copilot 学生认证指南:免费获取 Pro 版权益
  • 深入理解数据结构中的时间与空间复杂度
  • 从登录页实战到 XSS 防御:Web 前端安全入门全攻略
  • PyTorch 实战:加载模型权重与 ONNX 推理部署
  • 【保姆级教程】从零入手:Python + Neo4j 构建你的第一个知识图谱
  • C++ 算法刷题:气球排列、迷宫搜索与主持人调度
  • 主流无人机厂商 Remote ID 支持情况汇总
  • 前端实战:使用 HTML、CSS 和 JavaScript 实现网页井字棋

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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