From dd874ab02db04853d4b5952712ab34693f9a93de Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 4 Jan 2023 08:19:36 +0100 Subject: Merging upstream version 1.13.0. Signed-off-by: Daniel Baumann --- iredis/data/commands/append.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'iredis/data/commands/append.md') diff --git a/iredis/data/commands/append.md b/iredis/data/commands/append.md index c354122..2c8bd74 100644 --- a/iredis/data/commands/append.md +++ b/iredis/data/commands/append.md @@ -1,6 +1,7 @@ If `key` already exists and is a string, this command appends the `value` at the -end of the string. If `key` does not exist it is created and set as an empty -string, so `APPEND` will be similar to `SET` in this special case. +end of the string. +If `key` does not exist it is created and set as an empty string, so `APPEND` +will be similar to `SET` in this special case. @return @@ -18,8 +19,8 @@ GET mykey ## Pattern: Time series The `APPEND` command can be used to create a very compact representation of a -list of fixed-size samples, usually referred as _time series_. Every time a new -sample arrives we can store it using the command +list of fixed-size samples, usually referred as _time series_. +Every time a new sample arrives we can store it using the command ``` APPEND timeseries "fixed-size sample" @@ -27,17 +28,17 @@ APPEND timeseries "fixed-size sample" Accessing individual elements in the time series is not hard: -- `STRLEN` can be used in order to obtain the number of samples. -- `GETRANGE` allows for random access of elements. If our time series have - associated time information we can easily implement a binary search to get - range combining `GETRANGE` with the Lua scripting engine available in Redis - 2.6. -- `SETRANGE` can be used to overwrite an existing time series. - -The limitation of this pattern is that we are forced into an append-only mode of -operation, there is no way to cut the time series to a given size easily because -Redis currently lacks a command able to trim string objects. However the space -efficiency of time series stored in this way is remarkable. +* `STRLEN` can be used in order to obtain the number of samples. +* `GETRANGE` allows for random access of elements. + If our time series have associated time information we can easily implement + a binary search to get range combining `GETRANGE` with the Lua scripting + engine available in Redis 2.6. +* `SETRANGE` can be used to overwrite an existing time series. + +The limitation of this pattern is that we are forced into an append-only mode +of operation, there is no way to cut the time series to a given size easily +because Redis currently lacks a command able to trim string objects. +However the space efficiency of time series stored in this way is remarkable. Hint: it is possible to switch to a different key based on the current Unix time, in this way it is possible to have just a relatively small amount of -- cgit v1.2.3