首页/数据/数据库速查/MSET / MGET 批量读写
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

MSET / MGET 批量读写

一次网络往返读写多键,降低 RTT;MGET 只支持字符串、不存在的位置返回 nil;MSET 原子性仅保证一起返回,不代表事务。

数据库速查数据更新于 2026-10-12
用途批量写入/读取字符串键
语法MSET k1 v1 k2 v2 ... / MGET k1 k2 ...
返回MSET=OK;MGET 为按序结果列表

示例

示例
MSET user:1:name 张三 user:1:city 上海 user:1:age 30
MGET user:1:name user:1:missing user:1:city
# -> 1) "张三"  2) (nil)  3) "上海"
MGET user:1:*   # 错:不支持通配符,MGET 只认具体键名
批量键数量多时要拆包(如每批 100-500 个):单命令过大同样会阻塞,且集群模式下多键必须同槽。

易错点

  • 以为 MSET 是事务:中间出错不会回滚,多键原子需求请用 MULTI/Lua
  • MGET 里混了非字符串类型键,返回 nil 而非报错,排查时容易误判键不存在

数据来源与参考

  • Redis 官方文档: MSET
  • Redis 官方文档: MGET

相关工具

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