redis hashset
时间: 2025-01-08 07:55:38 浏览: 3
### Redis Hash 数据类型的 Set 操作
在 Redis 中,`Hash` 是一种键值对集合的数据结构,其中每个键又可以关联多个字段和对应的值。对于 `Hash` 类型执行设置操作主要依赖于几个核心命令。
#### 使用 HSET 添加或更新字段
当需要向指定的哈希表中添加新的字段及其对应值时,可使用 `HSET` 命令。如果该字段已经存在,则会覆盖原有值并返回0;如果是新创建则返回1[^1]。
```bash
HSET key field value
```
例如:
```bash
HSET user:1001 name "Alice"
(integer) 1
```
这表示成功新增了一个名为 `name` 的字段到 `user:1001` 这个哈希表里,并赋予其 `"Alice"` 的字符串作为值。
#### 批量设置 HMSET 或者更推荐的方式是使用 HMSETNX
为了提高效率,在一次请求内完成多个字段的同时赋值可以选择 `HMSET` (注意:自4.0版本起官方建议采用 `HSET` 来代替它)。而 `HMSETNX` 则是在所有给定字段都不存在的情况下才进行批量插入,否则不作任何修改。
```bash
HMSET key field1 value1 [field2 value2 ...]
```
例子如下所示:
```bash
HMSET user:1001 age 30 city "Beijing"
OK
```
此命令将一次性为 `user:1001` 设置了两个额外属性——年龄(`age`)以及城市(`city`)。
#### 更新现有字段 HINCRBY 和 HINCRBYFLOAT
除了直接设定具体数值外,还可以通过增量方式调整整数或浮点数类型的字段内容。针对整形有 `HINCRBY` ,而对于实数则应该选用 `HINCRBYFLOAT` 。这两个指令允许原子化地增加/减少某个特定项上的计数器而不必先读取再写回整个记录。
```bash
HINCRBY key field increment
HINCRBYFLOAT key field increment
```
实例展示:
```bash
HINCRBY user:1001 score 5
(integer) 5
```
上述语句使得 `score` 字段增加了5分。
阅读全文