Redis APPEND命令
Redis APPEND 命令用于为指定的 key 追加值。
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。当 key 不存在时,它就为这个 key 设置 value 值,等同于 SET key value 操作。
命令的格式如下所示:
这个方法的唯一缺陷就是只能增长时间序列,而不能缩短。因为 Redis 目前还没有对字符串进行修剪(tirm)的命令,但是,这种储存方式仍然节省了大量空间。
如果 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"