Redis APPEND命令

 
Redis APPEND 命令用于为指定的 key 追加值。

如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。当 key 不存在时,它就为这个 key 设置 value 值,等同于 SET key value 操作。

可用版本

Redis APPEND 命令可用版本:>= 2.0.0。

语法

 APPEND key value

返回值

追加 value 之后, key 存储的字符串长度。

命令演示

127.0.0.1:6379> del url #确保url不存在,删除key
(integer) 0
127.0.0.1:6379> APPEND url hello  #自动创建,并设置value
(integer) 5
127.0.0.1:6379> APPEND url -www.biancheng.net #追加到末尾
(integer) 23
127.0.0.1:6379> GET url
"hello-www.biancheng.net"

时间序列(Time series)

APPEND 命令可以为一系列定长(fixed-size)数据(sample)提供一种紧凑的表示方式,这种操作通常被应用于时间序列的表示上。

命令的格式如下所示:
APPEND timeseries "fixed-size sample"
通过以下的方式可以访问时间序列的各项属性:
  • STRLEN:给出时间序列中数据的数量;
  • GETRANGE:可以用于随机访问;
  • SETRANGE:可以用于覆盖或修改已存在的的时间序列。

这个方法的唯一缺陷就是只能增长时间序列,而不能缩短。因为 Redis 目前还没有对字符串进行修剪(tirm)的命令,但是,这种储存方式仍然节省了大量空间。

提示:我们可以考虑使用 UNIX 时间戳作为时间序列的键名,这样可以避免单个 key 因为保存过大的时间序列而占用大量内存。

下面是一个时间序列的例子:
127.0.0.1:6379> APPEND ts "0054"
(integer) 4
127.0.0.1:6379> APPEND ts "0048"
(integer) 8
127.0.0.1:6379> GETRANGE ts 0 3
"0054"
127.0.0.1:6379> GETRANGE ts 4 7
"0048"