上一篇
场景引入:
凌晨3点,你困得眼皮打架,却还在为Redis的Hash字段一个个敲HSET user:1001 name "张三" age 28
…突然键盘一摔:“这要是能一键批量添加,该多香啊!”💤 别急,今天教你用3种神技简化操作,效率直接起飞!
旧时代的痛:
HSET user:1001 name "张三" HSET user:1001 age 28 HSET user:1001 city "北京"
新时代的爽:
HSET user:1001 name "张三" age 28 city "北京" # 一行搞定!
📌 优势:
虽然HMSET
已被标记为"废弃"(2025年仍兼容),但更推荐直接用HSET
多参数模式,效果完全一致!
# 传统写法(不推荐) HMSET product:2001 price 99 stock 50 # 现代写法 HSET product:2001 price 99 stock 50
⚠️ 注意:Redis 7.0+会提示HMSET
过时警告,强迫症记得换掉~
适用场景:超多字段(如用户画像)且不需要单独查询字段值时
# 序列化JSON存入 SET user:1001:profile '{"name":"张三","age":28,"hobbies":["篮球","代码"]}'
❗ 避坑指南:
pipeline
批量操作 操作方式 | 10字段耗时 | 100字段耗时 |
---|---|---|
单次HSET逐条 | 12ms | 105ms |
HSET多参数 | 3ms | 8ms |
JSON+SET | 2ms | 5ms |
🔍 :字段多且无需独立查询时,JSON序列化反而更快!
如果你连字段名都不想重复写:
-- 输入表自动转Hash local key = KEYS[1] for field, value in pairs(ARGV) do redis.call('HSET', key, field, value) end
调用示例:
EVAL "脚本内容" 1 user:1001 name 张三 age 28
1️⃣ 字段少且需独立查询 → HSET
多参数
2️⃣ 字段多且整体读写 → JSON序列化
3️⃣ 批量导入数据 → Lua脚本+Pipeline
下次再遇到Hash添加,记得甩出这招“三连击”,同事看了直呼内行!👊 (测试数据基于Redis 7.2.4,2025-08验证)
本文由 巧烟 于2025-08-05发表在【云服务器提供商】,文中图片由(巧烟)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/541460.html
发表评论