HMSET key field value [field value ...] 这个命令用于同时设置哈希表中的一个或多个字段-值(域-值)对。它会覆盖已存在的字段值,如果key不存在,会创建一个新的哈希表并设置这些字段值。
基本语法和用法
语法:HMSET key field1 value1 [field2 value2 ...]
例如:HMSET user:1000 name "John Smith" age 32 city "New York"
这个命令设置了一个名为user:1000的哈希,里面有name、age和city三个字段。
设置hmset存储结构示例
127.0.0.1:6379> HMSET myhash field1 "foo" field2 "bar" field3 "baz"
OK
127.0.0.1:6379> HGETALL myhash
1) "field1"
2) "foo"
3) "field2"
4) "bar"
5) "field3"
6) "baz"
实际应用场景
在实际使用中,HMSET常用于存储用户信息:HMSET user:1 name "张三" email "zhangsan@example.com" phone "13800138000"
这样就把用户ID为1的信息存入了Redis哈希表。
批量设置多个字段
HMSET profile:jack name "Jack" age 25 salary 10000 skills "redis,mysql"
OK (1.29s)
查看:HGETALL profile:jack
1) "name" 2) "Jack" 3) "age" 4) "25" 5) "salary" 6) "10000" 7) "skills" 8) "redis,mysql"
存储结构说明
Redis的Hash结构就像一个对象,可以存储多个属性对,适合存用户资料、商品信息等。使用HMSET一次性设置多个字段,提高效率。
FAQ
Q: HMSET和HSET有什么区别?
A: HSET只设置一个字段,HMSET可以设置多个字段。
Q: HMSET返回什么?
A: 总是返回OK,表示命令执行成功。
Q: 如果字段已存在会怎样?
A: 会覆盖原值。
Q: 怎么查看HMSET设置的内容?
A: 用HGETALL key 或 HGET key field。