APPEND

将字符串附加到键的值。如果键不存在,则创建该键。

语法

APPEND key value

引入版本:2.0.0

复杂度摘要:O(1)

将一个值附加到存储在 key 中的字符串。如果 key 不存在,则会使用空字符串创建它,因此在这种情况下,APPEND 的行为与 SET 类似。

必需参数

key

键名称。

value

要附加到现有值的字符串。

示例

redis> EXISTS mykey
(integer) 0
redis> APPEND mykey "Hello"
(integer) 5
redis> APPEND mykey " World"
(integer) 11
redis> GET mykey
"Hello World"

详细说明

模式:时间序列

APPEND 命令可用于创建固定大小样本列表的非常紧凑的表示,通常称为 时间序列。每次有新样本到达时,我们都可以使用命令存储它

APPEND timeseries "fixed-size sample"

访问时间序列中的各个元素并不难:

  • 可以使用STRLEN来获取样本数量。
  • GETRANGE 允许随机访问元素。如果我们的时间序列具有关联的时间信息,我们可以轻松地实现二分搜索,以将 GETRANGE 与 Redis 2.6 中提供的 Lua 脚本引擎相结合来获取范围。
  • SETRANGE 可用于覆盖现有时间序列。

这种模式的局限性是我们被迫进入仅追加操作模式,无法轻松地将时间序列切割到给定大小,因为Redis目前缺乏能够修剪字符串对象的命令。然而以这种方式存储的时间序列的空间效率是显着的。

提示:可以根据当前 Unix 时间切换到不同的键,这样每个键可以只有相对少量的样本,以避免处理非常大的键,并使这种模式更适合分布在许多 Redis 实例中。

使用固定大小字符串对传感器温度进行采样的示例(在实际实现中使用二进制格式更好)。

redis> APPEND ts "0043"
(integer) 4
redis> APPEND ts "0035"
(integer) 8
redis> GETRANGE ts 0 3
"0043"
redis> GETRANGE ts 4 7
"0035"

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

整数回复:追加操作后的字符串长度。

RESP3

整数回复:追加操作后的字符串长度。

资料来源:Redis 官方 APPEND 文档;中文内容参考 Redis 文档许可。