首页/数据/数据库速查/HGETALL 全量读取哈希
Redis 命令96 条

HGETALL 全量读取哈希

一次取回所有 field-value;字段多时结果集会很大且阻塞单线程,生产建议用 HSCAN 分批或只取需要的字段。

数据库速查数据更新于 2026-10-12

示例

示例
HGETALL user:1001
# 1) name  2) 张三  3) age  4) 31 ...(field/value 交替)
# 客户端一般已封装成 map
HLEN user:1001      # 先看字段数再决定要不要全量读
HSCAN user:1001 0 COUNT 50   # 字段多时用游标分批
返回field、value 交替的数组
等价HKEYS + HVALS 但要两次往返
风险大 hash 全量读会阻塞并撑大网络包
把 HGETALL 当默认读法:单 Hash 几万字段时,一次 HGETALL 的序列化耗时就是线上毛刺来源。

易错点

  • 对几万字段的 Hash 直接 HGETALL:网络带宽与阻塞双杀
  • HGETALL 之后按数组下标取值:客户端实现差异可能不保证顺序(按实现通常按插入序)

数据来源与参考

  • Redis 官方文档: HGETALL
  • Redis 官方文档: HSCAN

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌