附加

语法
APPEND key value
从以下位置开始可用:
2.0.0
时间复杂度:
O(1) 的 S Package假设附加的值很小,并且已经存在的值是任意大小,则摊销时间复杂度为 O(1),因为 Redis 使用的动态字符串库将使每次重新分配的可用空间增加一倍。
ACL 类别:
@write, @string, @fast,

如果keyalready exists 且是一个字符串,则此命令会将value在 字符串的结尾。 如果key不存在,则将其创建并设置为空字符串,因此APPEND将类似于SET在这种特殊情况下。

例子

存在 mykey APPEND mykey “你好” APPEND mykey “世界” 获取 mykey

模式:时间序列

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

APPEND timeseries "fixed-size sample"

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

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

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

提示:可以根据当前的 Unix 切换到不同的密钥 时间,这样就可以拥有相对少量的 samples per key 的 Samples 来避免处理非常大的 key,并制作此模式 更友好地分布在多个 Redis 实例中。

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

附加 ts “0043” 附加 ts “0035” GETRANGE ts 0 3 GETRANGE TS 4 7

RESP2/RESP3 回复

Integer reply:append作后的字符串长度。
为本页评分
返回顶部 ↑