diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 13cb3e5ac..815f4a06f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,7 +103,7 @@ jobs: runs-on: ubuntu-latest services: redis: - image: redis:7.0.10 + image: redis:7.0.11 options: >- --health-cmd "redis-cli ping" --health-interval 10s diff --git a/.github/workflows/updatesnapshot.yml b/.github/workflows/updatesnapshot.yml index c90ca0908..e03429958 100644 --- a/.github/workflows/updatesnapshot.yml +++ b/.github/workflows/updatesnapshot.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest services: redis: - image: redis:7.0.10 + image: redis:7.0.11 options: >- --health-cmd "redis-cli ping" --health-interval 10s diff --git a/compat.md b/compat.md index feafd6d3c..db71895ce 100644 --- a/compat.md +++ b/compat.md @@ -120,7 +120,7 @@ | [psync] | :white_check_mark: | :x: | | [pttl] | :white_check_mark: | :white_check_mark: | | [publish] | :white_check_mark: | :white_check_mark: | -| [pubsub] | :white_check_mark: | :x: | +| [pubsub] | :white_check_mark: | :white_check_mark: | | [punsubscribe] | :white_check_mark: | :white_check_mark: | | [quit] | :white_check_mark: | :white_check_mark: | | [randomkey] | :white_check_mark: | :white_check_mark: | diff --git a/data/command-docs.json b/data/command-docs.json index 3d4fcf784..980a65892 100644 --- a/data/command-docs.json +++ b/data/command-docs.json @@ -1 +1 @@ -["asking",["summary","Sent by cluster clients after an -ASK redirect","since","3.0.0","group","cluster","complexity","O(1)"],"hincrby",["summary","Increment the integer value of a hash field by the given number","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"],["name","increment","type","integer"]]],"echo",["summary","Echo the given string","since","1.0.0","group","connection","complexity","O(1)","arguments",[["name","message","type","string"]]],"getset",["summary","Set the string value of a key and return its old value","since","1.0.0","group","string","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`SET` with the `!GET` argument","arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]],"decrby",["summary","Decrement the integer value of a key by the given number","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","decrement","type","integer"]]],"hstrlen",["summary","Get the length of the value of a hash field","since","3.2.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"]]],"eval",["summary","Execute a Lua script server side","since","2.6.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","script","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"zrandmember",["summary","Get one or multiple random elements from a sorted set","since","6.2.0","group","sorted-set","complexity","O(N) where N is the number of elements returned","arguments",[["name","key","type","key","key_spec_index",0],["name","options","type","block","flags",["optional"],"arguments",[["name","count","type","integer"],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]]]],"zpopmin",["summary","Remove and return members with the lowest scores in a sorted set","since","5.0.0","group","sorted-set","complexity","O(log(N)*M) with N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","flags",["optional"]]]],"type",["summary","Determine the type stored at key","since","1.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"xlen",["summary","Return the number of entries in a stream","since","5.0.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"hgetall",["summary","Get all the fields and values in a hash","since","2.0.0","group","hash","complexity","O(N) where N is the size of the hash.","arguments",[["name","key","type","key","key_spec_index",0]]],"zscan",["summary","Incrementally iterate sorted sets elements and associated scores","since","2.8.0","group","sorted-set","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection..","arguments",[["name","key","type","key","key_spec_index",0],["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"smove",["summary","Move a member from one set to another","since","1.0.0","group","set","complexity","O(1)","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","member","type","string"]]],"xclaim",["summary","Changes (or acquires) ownership of a message in a consumer group, as if the message was delivered to the specified consumer.","since","5.0.0","group","stream","complexity","O(log N) with N being the number of messages in the PEL of the consumer group.","arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","consumer","type","string"],["name","min-idle-time","type","string"],["name","id","type","string","flags",["multiple"]],["name","ms","type","integer","token","IDLE","flags",["optional"]],["name","unix-time-milliseconds","type","unix-time","token","TIME","flags",["optional"]],["name","count","type","integer","token","RETRYCOUNT","flags",["optional"]],["name","force","type","pure-token","token","FORCE","flags",["optional"]],["name","justid","type","pure-token","token","JUSTID","flags",["optional"]],["name","id","type","string","token","LASTID","flags",["optional"]]]],"setnx",["summary","Set the value of a key, only if the key does not exist","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]],"zscore",["summary","Get the score associated with the given member in a sorted set","since","1.2.0","group","sorted-set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"dump",["summary","Return a serialized version of the value stored at the specified key.","since","2.6.0","group","generic","complexity","O(1) to access the key and additional O(N*M) to serialize it, where N is the number of Redis objects composing the value and M their average size. For small string values the time complexity is thus O(1)+O(1*M) where M is small, so simply O(1).","arguments",[["name","key","type","key","key_spec_index",0]]],"ping",["summary","Ping the server","since","1.0.0","group","connection","complexity","O(1)","arguments",[["name","message","type","string","flags",["optional"]]]],"lset",["summary","Set the value of an element in a list by its index","since","1.0.0","group","list","complexity","O(N) where N is the length of the list. Setting either the first or the last element of the list is O(1).","arguments",[["name","key","type","key","key_spec_index",0],["name","index","type","integer"],["name","element","type","string"]]],"discard",["summary","Discard all commands issued after MULTI","since","2.0.0","group","transactions","complexity","O(N), when N is the number of queued commands"],"zrevrank",["summary","Determine the index of a member in a sorted set, with scores ordered from high to low","since","2.0.0","group","sorted-set","complexity","O(log(N))","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"geosearch",["summary","Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle.","since","6.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements in the grid-aligned bounding box area around the shape provided as the filter and M is the number of items inside the shape","history",[["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","from","type","oneof","arguments",[["name","member","type","string","token","FROMMEMBER"],["name","longitude_latitude","type","block","token","FROMLONLAT","arguments",[["name","longitude","type","double"],["name","latitude","type","double"]]]]],["name","by","type","oneof","arguments",[["name","circle","type","block","arguments",[["name","radius","type","double","token","BYRADIUS"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]],["name","box","type","block","arguments",[["name","width","type","double","token","BYBOX"],["name","height","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]]]],"lmove",["summary","Pop an element from a list, push it to another list and return it","since","6.2.0","group","list","complexity","O(1)","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","wherefrom","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","whereto","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]]]],"srem",["summary","Remove one or more members from a set","since","1.0.0","group","set","complexity","O(N) where N is the number of members to be removed.","history",[["2.4.0","Accepts multiple `member` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"xautoclaim",["summary","Changes (or acquires) ownership of messages in a consumer group, as if the messages were delivered to the specified consumer.","since","6.2.0","group","stream","complexity","O(1) if COUNT is small.","history",[["7.0.0","Added an element to the reply array, containing deleted entries the command cleared from the PEL"]],"arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","consumer","type","string"],["name","min-idle-time","type","string"],["name","start","type","string"],["name","count","type","integer","token","COUNT","flags",["optional"]],["name","justid","type","pure-token","token","JUSTID","flags",["optional"]]]],"zinterstore",["summary","Intersect multiple sorted sets and store the resulting sorted set in a new key","since","2.0.0","group","sorted-set","complexity","O(N*K)+O(M*log(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.","arguments",[["name","destination","type","key","key_spec_index",0],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",1,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]]]],"hvals",["summary","Get all the values in a hash","since","2.0.0","group","hash","complexity","O(N) where N is the size of the hash.","arguments",[["name","key","type","key","key_spec_index",0]]],"evalsha",["summary","Execute a Lua script server side","since","2.6.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","sha1","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"slaveof",["summary","Make the server a replica of another instance, or promote it as master.","since","1.0.0","group","server","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","5.0.0","replaced_by","`REPLICAOF`","arguments",[["name","host","type","string"],["name","port","type","integer"]]],"expiretime",["summary","Get the expiration Unix timestamp for a key","since","7.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"sadd",["summary","Add one or more members to a set","since","1.0.0","group","set","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["2.4.0","Accepts multiple `member` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"zrangebylex",["summary","Return a range of members in a sorted set, by lexicographical range","since","2.8.9","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `BYLEX` argument","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","string"],["name","max","type","string"],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"smismember",["summary","Returns the membership associated with the given elements for a set","since","6.2.0","group","set","complexity","O(N) where N is the number of elements being checked for membership","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"lpos",["summary","Return the index of matching elements on a list","since","6.0.6","group","list","complexity","O(N) where N is the number of elements in the list, for the average case. When searching for elements near the head or the tail of the list, or when the MAXLEN option is provided, the command may run in constant time.","arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string"],["name","rank","type","integer","token","RANK","flags",["optional"]],["name","num-matches","type","integer","token","COUNT","flags",["optional"]],["name","len","type","integer","token","MAXLEN","flags",["optional"]]]],"xadd",["summary","Appends a new entry to a stream","since","5.0.0","group","stream","complexity","O(1) when adding a new entry, O(N) when trimming where N being the number of entries evicted.","history",[["6.2.0","Added the `NOMKSTREAM` option, `MINID` trimming strategy and the `LIMIT` option."],["7.0.0","Added support for the `-*` explicit ID form."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","nomkstream","type","pure-token","token","NOMKSTREAM","since","6.2.0","flags",["optional"]],["name","trim","type","block","flags",["optional"],"arguments",[["name","strategy","type","oneof","arguments",[["name","maxlen","type","pure-token","token","MAXLEN"],["name","minid","type","pure-token","token","MINID","since","6.2.0"]]],["name","operator","type","oneof","flags",["optional"],"arguments",[["name","equal","type","pure-token","token","="],["name","approximately","type","pure-token","token","~"]]],["name","threshold","type","string"],["name","count","type","integer","token","LIMIT","since","6.2.0","flags",["optional"]]]],["name","id_or_auto","type","oneof","arguments",[["name","auto_id","type","pure-token","token","*"],["name","id","type","string"]]],["name","field_value","type","block","flags",["multiple"],"arguments",[["name","field","type","string"],["name","value","type","string"]]]]],"blmove",["summary","Pop an element from a list, push it to another list and return it; or block until one is available","since","6.2.0","group","list","complexity","O(1)","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","wherefrom","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","whereto","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","timeout","type","double"]]],"lrange",["summary","Get a range of elements from a list","since","1.0.0","group","list","complexity","O(S+N) where S is the distance of start offset from HEAD for small lists, from nearest end (HEAD or TAIL) for large lists; and N is the number of elements in the specified range.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"]]],"mget",["summary","Get the values of all the given keys","since","1.0.0","group","string","complexity","O(N) where N is the number of keys to retrieve.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"sismember",["summary","Determine if a given value is a member of a set","since","1.0.0","group","set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"blpop",["summary","Remove and get the first element in a list, or block until one is available","since","2.0.0","group","list","complexity","O(N) where N is the number of provided keys.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"sinter",["summary","Intersect multiple sets","since","1.0.0","group","set","complexity","O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"lcs",["summary","Find longest common substring","since","7.0.0","group","string","complexity","O(N*M) where N and M are the lengths of s1 and s2, respectively","arguments",[["name","key1","type","key","key_spec_index",0],["name","key2","type","key","key_spec_index",0],["name","len","type","pure-token","token","LEN","flags",["optional"]],["name","idx","type","pure-token","token","IDX","flags",["optional"]],["name","len","type","integer","token","MINMATCHLEN","flags",["optional"]],["name","withmatchlen","type","pure-token","token","WITHMATCHLEN","flags",["optional"]]]],"replicaof",["summary","Make the server a replica of another instance, or promote it as master.","since","5.0.0","group","server","complexity","O(1)","arguments",[["name","host","type","string"],["name","port","type","integer"]]],"mset",["summary","Set multiple keys to multiple values","since","1.0.1","group","string","complexity","O(N) where N is the number of keys to set.","arguments",[["name","key_value","type","block","flags",["multiple"],"arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]]]],"bzpopmin",["summary","Remove and return the member with the lowest score from one or more sorted sets, or block until one is available","since","5.0.0","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"persist",["summary","Remove the expiration from a key","since","2.2.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"geopos",["summary","Returns longitude and latitude of members of a geospatial index","since","3.2.0","group","geo","complexity","O(N) where N is the number of members requested.","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"slowlog",["summary","A container for slow log commands","since","2.2.12","group","server","complexity","Depends on subcommand.","subcommands",["slowlog|reset",["summary","Clear all entries from the slow log","since","2.2.12","group","server","complexity","O(N) where N is the number of entries in the slowlog"],"slowlog|help",["summary","Show helpful text about the different subcommands","since","6.2.0","group","server","complexity","O(1)"],"slowlog|len",["summary","Get the slow log's length","since","2.2.12","group","server","complexity","O(1)"],"slowlog|get",["summary","Get the slow log's entries","since","2.2.12","group","server","complexity","O(N) where N is the number of entries returned","history",[["4.0.0","Added client IP address, port and name to the reply."]],"arguments",[["name","count","type","integer","flags",["optional"]]]]]],"hrandfield",["summary","Get one or multiple random fields from a hash","since","6.2.0","group","hash","complexity","O(N) where N is the number of fields returned","arguments",[["name","key","type","key","key_spec_index",0],["name","options","type","block","flags",["optional"],"arguments",[["name","count","type","integer"],["name","withvalues","type","pure-token","token","WITHVALUES","flags",["optional"]]]]]],"time",["summary","Return the current server time","since","2.6.0","group","server","complexity","O(1)"],"config",["summary","A container for server configuration commands","since","2.0.0","group","server","complexity","Depends on subcommand.","subcommands",["config|resetstat",["summary","Reset the stats returned by INFO","since","2.0.0","group","server","complexity","O(1)"],"config|get",["summary","Get the values of configuration parameters","since","2.0.0","group","server","complexity","O(N) when N is the number of configuration parameters provided","history",[["7.0.0","Added the ability to pass multiple pattern parameters in one call"]],"arguments",[["name","parameter","type","block","flags",["multiple"],"arguments",[["name","parameter","type","string"]]]]],"config|set",["summary","Set configuration parameters to the given values","since","2.0.0","group","server","complexity","O(N) when N is the number of configuration parameters provided","history",[["7.0.0","Added the ability to set multiple parameters in one call."]],"arguments",[["name","parameter_value","type","block","flags",["multiple"],"arguments",[["name","parameter","type","string"],["name","value","type","string"]]]]],"config|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","server","complexity","O(1)"],"config|rewrite",["summary","Rewrite the configuration file with the in memory configuration","since","2.8.0","group","server","complexity","O(1)"]]],"expireat",["summary","Set the expiration for a key as a UNIX timestamp","since","1.2.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","unix-time-seconds","type","unix-time"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"zdiffstore",["summary","Subtract multiple sorted sets and store the resulting sorted set in a new key","since","6.2.0","group","sorted-set","complexity","O(L + (N-K)log(N)) worst case where L is the total number of elements in all the sets, N is the size of the first set, and K is the size of the result set.","arguments",[["name","destination","type","key","key_spec_index",0],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"xinfo",["summary","A container for stream introspection commands","since","5.0.0","group","stream","complexity","Depends on subcommand.","subcommands",["xinfo|stream",["summary","Get information about a stream","since","5.0.0","group","stream","complexity","O(1)","history",[["6.0.0","Added the `FULL` modifier."],["7.0.0","Added the `max-deleted-entry-id`, `entries-added`, `recorded-first-entry-id`, `entries-read` and `lag` fields"]],"arguments",[["name","key","type","key","key_spec_index",0],["name","full","type","block","token","FULL","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT","flags",["optional"]]]]]],"xinfo|consumers",["summary","List the consumers in a consumer group","since","5.0.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"]]],"xinfo|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","stream","complexity","O(1)"],"xinfo|groups",["summary","List the consumer groups of a stream","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the `entries-read` and `lag` fields"]],"arguments",[["name","key","type","key","key_spec_index",0]]]]],"fcall",["summary","Invoke a function","since","7.0.0","group","scripting","complexity","Depends on the function that is executed.","arguments",[["name","function","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"sunionstore",["summary","Add multiple sets and store the resulting set in a key","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","destination","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"hmset",["summary","Set multiple hash fields to multiple values","since","2.0.0","group","hash","complexity","O(N) where N is the number of fields being set.","doc_flags",["deprecated"],"deprecated_since","4.0.0","replaced_by","`HSET` with multiple field-value pairs","arguments",[["name","key","type","key","key_spec_index",0],["name","field_value","type","block","flags",["multiple"],"arguments",[["name","field","type","string"],["name","value","type","string"]]]]],"pexpiretime",["summary","Get the expiration Unix timestamp for a key in milliseconds","since","7.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"pfdebug",["summary","Internal commands for debugging HyperLogLog values","since","2.8.9","group","hyperloglog","complexity","N/A","doc_flags",["syscmd"],"arguments",[["name","subcommand","type","string"],["name","key","type","key","key_spec_index",0]]],"eval_ro",["summary","Execute a read-only Lua script server side","since","7.0.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","script","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"zincrby",["summary","Increment the score of a member in a sorted set","since","1.2.0","group","sorted-set","complexity","O(log(N)) where N is the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","increment","type","integer"],["name","member","type","string"]]],"hget",["summary","Get the value of a hash field","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"]]],"zrevrangebylex",["summary","Return a range of members in a sorted set, by lexicographical range, ordered from higher to lower strings.","since","2.8.9","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `REV` and `BYLEX` arguments","arguments",[["name","key","type","key","key_spec_index",0],["name","max","type","string"],["name","min","type","string"],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"exists",["summary","Determine if a key exists","since","1.0.0","group","generic","complexity","O(N) where N is the number of keys to check.","history",[["3.0.3","Accepts multiple `key` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"bitfield_ro",["summary","Perform arbitrary bitfield integer operations on strings. Read-only variant of BITFIELD","since","6.0.0","group","bitmap","complexity","O(1) for each subcommand specified","arguments",[["name","key","type","key","key_spec_index",0],["name","encoding_offset","type","block","token","GET","flags",["optional","multiple","multiple_token"],"arguments",[["name","encoding","type","string"],["name","offset","type","integer"]]]]],"lastsave",["summary","Get the UNIX time stamp of the last successful save to disk","since","1.0.0","group","server","complexity","O(1)"],"sort_ro",["summary","Sort the elements in a list, set or sorted set. Read-only variant of SORT.","since","7.0.0","group","generic","complexity","O(N+M*log(M)) where N is the number of elements in the list or set to sort, and M the number of returned elements. When the elements are not sorted, complexity is O(N).","arguments",[["name","key","type","key","key_spec_index",0],["name","pattern","type","pattern","key_spec_index",1,"token","BY","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]],["name","pattern","type","pattern","key_spec_index",1,"token","GET","flags",["optional","multiple","multiple_token"]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","sorting","type","pure-token","token","ALPHA","flags",["optional"]]]],"lindex",["summary","Get an element from a list by its index","since","1.0.0","group","list","complexity","O(N) where N is the number of elements to traverse to get to the element at index. This makes asking for the first or the last element of the list O(1).","arguments",[["name","key","type","key","key_spec_index",0],["name","index","type","integer"]]],"rpush",["summary","Append one or multiple elements to a list","since","1.0.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["2.4.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"hexists",["summary","Determine if a hash field exists","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"]]],"quit",["summary","Close the connection","since","1.0.0","group","connection","complexity","O(1)"],"llen",["summary","Get the length of a list","since","1.0.0","group","list","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"pexpireat",["summary","Set the expiration for a key as a UNIX timestamp specified in milliseconds","since","2.6.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","unix-time-milliseconds","type","unix-time"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"pfselftest",["summary","An internal command for testing HyperLogLog values","since","2.8.9","group","hyperloglog","complexity","N/A","doc_flags",["syscmd"]],"bzmpop",["summary","Remove and return members with scores in a sorted set or block until one is available","since","7.0.0","group","sorted-set","complexity","O(K) + O(M*log(N)) where K is the number of provided keys, N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","timeout","type","double"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"get",["summary","Get the value of a key","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"del",["summary","Delete a key","since","1.0.0","group","generic","complexity","O(N) where N is the number of keys that will be removed. When a key to remove holds a value other than a string, the individual complexity for this key is O(M) where M is the number of elements in the list, set, sorted set or hash. Removing a single key that holds a string value is O(1).","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"sscan",["summary","Incrementally iterate Set elements","since","2.8.0","group","set","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection..","arguments",[["name","key","type","key","key_spec_index",0],["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"sintercard",["summary","Intersect multiple sets and return the cardinality of the result","since","7.0.0","group","set","complexity","O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","limit","type","integer","token","LIMIT","flags",["optional"]]]],"psetex",["summary","Set the value and expiration in milliseconds of a key","since","2.6.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","milliseconds","type","integer"],["name","value","type","string"]]],"pfmerge",["summary","Merge N different HyperLogLogs into a single one.","since","2.8.9","group","hyperloglog","complexity","O(N) to merge N HyperLogLogs, but with high constant times.","arguments",[["name","destkey","type","key","key_spec_index",0],["name","sourcekey","type","key","key_spec_index",1,"flags",["multiple"]]]],"lmpop",["summary","Pop elements from a list","since","7.0.0","group","list","complexity","O(N+M) where N is the number of provided keys and M is the number of elements returned.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"lpop",["summary","Remove and get the first elements in a list","since","1.0.0","group","list","complexity","O(N) where N is the number of elements returned","history",[["6.2.0","Added the `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","6.2.0","flags",["optional"]]]],"module",["summary","A container for module commands","since","4.0.0","group","server","complexity","Depends on subcommand.","subcommands",["module|load",["summary","Load a module","since","4.0.0","group","server","complexity","O(1)","arguments",[["name","path","type","string"],["name","arg","type","string","flags",["optional","multiple"]]]],"module|list",["summary","List all modules loaded by the server","since","4.0.0","group","server","complexity","O(N) where N is the number of loaded modules."],"module|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","server","complexity","O(1)"],"module|loadex",["summary","Load a module with extended parameters","since","7.0.0","group","server","complexity","O(1)","arguments",[["name","path","type","string"],["name","configs","type","block","token","CONFIG","flags",["optional","multiple","multiple_token"],"arguments",[["name","name","type","string"],["name","value","type","string"]]],["name","args","type","block","token","ARGS","flags",["optional","multiple"],"arguments",[["name","arg","type","string"]]]]],"module|unload",["summary","Unload a module","since","4.0.0","group","server","complexity","O(1)","arguments",[["name","name","type","string"]]]]],"zmscore",["summary","Get the score associated with the given members in a sorted set","since","6.2.0","group","sorted-set","complexity","O(N) where N is the number of members being requested.","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"ssubscribe",["summary","Listen for messages published to the given shard channels","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of shard channels to subscribe to.","arguments",[["name","shardchannel","type","string","flags",["multiple"]]]],"xtrim",["summary","Trims the stream to (approximately if '~' is passed) a certain size","since","5.0.0","group","stream","complexity","O(N), with N being the number of evicted entries. Constant times are very small however, since entries are organized in macro nodes containing multiple entries that can be released with a single deallocation.","history",[["6.2.0","Added the `MINID` trimming strategy and the `LIMIT` option."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","trim","type","block","arguments",[["name","strategy","type","oneof","arguments",[["name","maxlen","type","pure-token","token","MAXLEN"],["name","minid","type","pure-token","token","MINID","since","6.2.0"]]],["name","operator","type","oneof","flags",["optional"],"arguments",[["name","equal","type","pure-token","token","="],["name","approximately","type","pure-token","token","~"]]],["name","threshold","type","string"],["name","count","type","integer","token","LIMIT","since","6.2.0","flags",["optional"]]]]]],"zrevrangebyscore",["summary","Return a range of members in a sorted set, by score, with scores ordered from high to low","since","2.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `REV` and `BYSCORE` arguments","history",[["2.1.6","`min` and `max` can be exclusive."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","max","type","double"],["name","min","type","double"],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"script",["summary","A container for Lua scripts management commands","since","2.6.0","group","scripting","complexity","Depends on subcommand.","subcommands",["script|exists",["summary","Check existence of scripts in the script cache.","since","2.6.0","group","scripting","complexity","O(N) with N being the number of scripts to check (so checking a single script is an O(1) operation).","arguments",[["name","sha1","type","string","flags",["multiple"]]]],"script|debug",["summary","Set the debug mode for executed scripts.","since","3.2.0","group","scripting","complexity","O(1)","arguments",[["name","mode","type","oneof","arguments",[["name","yes","type","pure-token","token","YES"],["name","sync","type","pure-token","token","SYNC"],["name","no","type","pure-token","token","NO"]]]]],"script|load",["summary","Load the specified Lua script into the script cache.","since","2.6.0","group","scripting","complexity","O(N) with N being the length in bytes of the script body.","arguments",[["name","script","type","string"]]],"script|flush",["summary","Remove all the scripts from the script cache.","since","2.6.0","group","scripting","complexity","O(N) with N being the number of scripts in cache","history",[["6.2.0","Added the `ASYNC` and `SYNC` flushing mode modifiers."]],"arguments",[["name","async","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC"],["name","sync","type","pure-token","token","SYNC"]]]]],"script|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","scripting","complexity","O(1)"],"script|kill",["summary","Kill the script currently in execution.","since","2.6.0","group","scripting","complexity","O(1)"]]],"strlen",["summary","Get the length of the value stored in a key","since","2.2.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"unsubscribe",["summary","Stop listening for messages posted to the given channels","since","2.0.0","group","pubsub","complexity","O(N) where N is the number of clients already subscribed to a channel.","arguments",[["name","channel","type","string","flags",["optional","multiple"]]]],"pfcount",["summary","Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s).","since","2.8.9","group","hyperloglog","complexity","O(1) with a very small average constant time when called with a single key. O(N) with N being the number of keys, and much bigger constant times, when called with multiple keys.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"xreadgroup",["summary","Return new entries from a stream using a consumer group, or access the history of the pending entries for a given consumer. Can block.","since","5.0.0","group","stream","complexity","For each stream mentioned: O(M) with M being the number of elements returned. If M is constant (e.g. always asking for the first 10 elements with COUNT), you can consider it O(1). On the other side when XREADGROUP blocks, XADD will pay the O(N) time in order to serve the N clients blocked on the stream getting new data.","arguments",[["name","group_consumer","type","block","token","GROUP","arguments",[["name","group","type","string"],["name","consumer","type","string"]]],["name","count","type","integer","token","COUNT","flags",["optional"]],["name","milliseconds","type","integer","token","BLOCK","flags",["optional"]],["name","noack","type","pure-token","token","NOACK","flags",["optional"]],["name","streams","type","block","token","STREAMS","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","id","type","string","flags",["multiple"]]]]]],"hkeys",["summary","Get all the fields in a hash","since","2.0.0","group","hash","complexity","O(N) where N is the size of the hash.","arguments",[["name","key","type","key","key_spec_index",0]]],"zrangestore",["summary","Store a range of members from sorted set into another key","since","6.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements stored into the destination key.","arguments",[["name","dst","type","key","key_spec_index",0],["name","src","type","key","key_spec_index",1],["name","min","type","string"],["name","max","type","string"],["name","sortby","type","oneof","flags",["optional"],"arguments",[["name","byscore","type","pure-token","token","BYSCORE"],["name","bylex","type","pure-token","token","BYLEX"]]],["name","rev","type","pure-token","token","REV","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"smembers",["summary","Get all the members in a set","since","1.0.0","group","set","complexity","O(N) where N is the set cardinality.","arguments",[["name","key","type","key","key_spec_index",0]]],"xgroup",["summary","A container for consumer groups commands","since","5.0.0","group","stream","complexity","Depends on subcommand.","subcommands",["xgroup|delconsumer",["summary","Delete a consumer from a consumer group.","since","5.0.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","consumername","type","string"]]],"xgroup|create",["summary","Create a consumer group.","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the `entries_read` named argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","id","type","oneof","arguments",[["name","id","type","string"],["name","new_id","type","pure-token","token","$"]]],["name","mkstream","type","pure-token","token","MKSTREAM","flags",["optional"]],["name","entries_read","type","integer","token","ENTRIESREAD","flags",["optional"]]]],"xgroup|createconsumer",["summary","Create a consumer in a consumer group.","since","6.2.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","consumername","type","string"]]],"xgroup|setid",["summary","Set a consumer group to an arbitrary last delivered ID value.","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the optional `entries_read` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","id","type","oneof","arguments",[["name","id","type","string"],["name","new_id","type","pure-token","token","$"]]],["name","entries_read","type","integer","token","ENTRIESREAD","flags",["optional"]]]],"xgroup|destroy",["summary","Destroy a consumer group.","since","5.0.0","group","stream","complexity","O(N) where N is the number of entries in the group's pending entries list (PEL).","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"]]],"xgroup|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","stream","complexity","O(1)"]]],"ttl",["summary","Get the time to live for a key in seconds","since","1.0.0","group","generic","complexity","O(1)","history",[["2.8.0","Added the -2 reply."]],"arguments",[["name","key","type","key","key_spec_index",0]]],"function",["summary","A container for function commands","since","7.0.0","group","scripting","complexity","Depends on subcommand.","subcommands",["function|restore",["summary","Restore all the functions on the given payload","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions on the payload","arguments",[["name","serialized-value","type","string"],["name","policy","type","oneof","flags",["optional"],"arguments",[["name","flush","type","pure-token","token","FLUSH"],["name","append","type","pure-token","token","APPEND"],["name","replace","type","pure-token","token","REPLACE"]]]]],"function|dump",["summary","Dump all functions into a serialized binary payload","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions"],"function|list",["summary","List information about all the functions","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions","arguments",[["name","library-name-pattern","type","string","token","LIBRARYNAME","flags",["optional"]],["name","withcode","type","pure-token","token","WITHCODE","flags",["optional"]]]],"function|delete",["summary","Delete a function by name","since","7.0.0","group","scripting","complexity","O(1)","arguments",[["name","library-name","type","string"]]],"function|load",["summary","Create a function with the given arguments (name, code, description)","since","7.0.0","group","scripting","complexity","O(1) (considering compilation time is redundant)","arguments",[["name","replace","type","pure-token","token","REPLACE","flags",["optional"]],["name","function-code","type","string"]]],"function|flush",["summary","Deleting all functions","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions deleted","arguments",[["name","async","type","oneof","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC"],["name","sync","type","pure-token","token","SYNC"]]]]],"function|help",["summary","Show helpful text about the different subcommands","since","7.0.0","group","scripting","complexity","O(1)"],"function|kill",["summary","Kill the function currently in execution.","since","7.0.0","group","scripting","complexity","O(1)"],"function|stats",["summary","Return information about the function currently running (name, description, duration)","since","7.0.0","group","scripting","complexity","O(1)"]]],"scan",["summary","Incrementally iterate the keys space","since","2.8.0","group","generic","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection.","history",[["6.0.0","Added the `TYPE` subcommand."]],"arguments",[["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]],["name","type","type","string","token","TYPE","since","6.0.0","flags",["optional"]]]],"migrate",["summary","Atomically transfer a key from a Redis instance to another one.","since","2.6.0","group","generic","complexity","This command actually executes a DUMP+DEL in the source instance, and a RESTORE in the target instance. See the pages of these commands for time complexity. Also an O(N) data transfer between the two instances is performed.","history",[["3.0.0","Added the `COPY` and `REPLACE` options."],["3.0.6","Added the `KEYS` option."],["4.0.7","Added the `AUTH` option."],["6.0.0","Added the `AUTH2` option."]],"arguments",[["name","host","type","string"],["name","port","type","integer"],["name","key_or_empty_string","type","oneof","arguments",[["name","key","type","key","key_spec_index",0],["name","empty_string","type","pure-token","token",""]]],["name","destination-db","type","integer"],["name","timeout","type","integer"],["name","copy","type","pure-token","token","COPY","since","3.0.0","flags",["optional"]],["name","replace","type","pure-token","token","REPLACE","since","3.0.0","flags",["optional"]],["name","authentication","type","oneof","flags",["optional"],"arguments",[["name","password","type","string","token","AUTH","since","4.0.7","flags",["optional"]],["name","username_password","type","block","token","AUTH2","since","6.0.0","flags",["optional"],"arguments",[["name","username","type","string"],["name","password","type","string"]]]]],["name","key","type","key","key_spec_index",1,"token","KEYS","since","3.0.6","flags",["optional","multiple"]]]],"fcall_ro",["summary","Invoke a read-only function","since","7.0.0","group","scripting","complexity","Depends on the function that is executed.","arguments",[["name","function","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"sync",["summary","Internal command used for replication","since","1.0.0","group","server"],"hello",["summary","Handshake with Redis","since","6.0.0","group","connection","complexity","O(1)","history",[["6.2.0","`protover` made optional; when called without arguments the command reports the current connection's context."]],"arguments",[["name","arguments","type","block","flags",["optional"],"arguments",[["name","protover","type","integer"],["name","username_password","type","block","token","AUTH","flags",["optional"],"arguments",[["name","username","type","string"],["name","password","type","string"]]],["name","clientname","type","string","token","SETNAME","flags",["optional"]]]]]],"punsubscribe",["summary","Stop listening for messages posted to channels matching the given patterns","since","2.0.0","group","pubsub","complexity","O(N+M) where N is the number of patterns the client is already subscribed and M is the number of total patterns subscribed in the system (by any client).","arguments",[["name","pattern","type","pattern","flags",["optional","multiple"]]]],"ltrim",["summary","Trim a list to the specified range","since","1.0.0","group","list","complexity","O(N) where N is the number of elements to be removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"]]],"sdiff",["summary","Subtract multiple sets","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"xrange",["summary","Return a range of elements in a stream, with IDs matching the specified IDs interval","since","5.0.0","group","stream","complexity","O(N) with N being the number of elements being returned. If N is constant (e.g. always asking for the first 10 elements with COUNT), you can consider it O(1).","history",[["6.2.0","Added exclusive ranges."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","string"],["name","end","type","string"],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"geohash",["summary","Returns members of a geospatial index as standard geohash strings","since","3.2.0","group","geo","complexity","O(log(N)) for each member requested, where N is the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"acl",["summary","A container for Access List Control commands ","since","6.0.0","group","server","complexity","Depends on subcommand.","subcommands",["acl|help",["summary","Show helpful text about the different subcommands","since","6.0.0","group","server","complexity","O(1)"],"acl|cat",["summary","List the ACL categories or the commands inside a category","since","6.0.0","group","server","complexity","O(1) since the categories and commands are a fixed set.","arguments",[["name","categoryname","type","string","flags",["optional"]]]],"acl|deluser",["summary","Remove the specified ACL users and the associated rules","since","6.0.0","group","server","complexity","O(1) amortized time considering the typical user.","arguments",[["name","username","type","string","flags",["multiple"]]]],"acl|setuser",["summary","Modify or create the rules for a specific ACL user","since","6.0.0","group","server","complexity","O(N). Where N is the number of rules provided.","history",[["6.2.0","Added Pub/Sub channel patterns."],["7.0.0","Added selectors and key based permissions."]],"arguments",[["name","username","type","string"],["name","rule","type","string","flags",["optional","multiple"]]]],"acl|users",["summary","List the username of all the configured ACL rules","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."],"acl|load",["summary","Reload the ACLs from the configured ACL file","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."],"acl|whoami",["summary","Return the name of the user associated to the current connection","since","6.0.0","group","server","complexity","O(1)"],"acl|dryrun",["summary","Returns whether the user can execute the given command without executing the command.","since","7.0.0","group","server","complexity","O(1).","arguments",[["name","username","type","string"],["name","command","type","string"],["name","arg","type","string","flags",["optional","multiple"]]]],"acl|getuser",["summary","Get the rules for a specific ACL user","since","6.0.0","group","server","complexity","O(N). Where N is the number of password, command and pattern rules that the user has.","history",[["6.2.0","Added Pub/Sub channel patterns."],["7.0.0","Added selectors and changed the format of key and channel patterns from a list to their rule representation."]],"arguments",[["name","username","type","string"]]],"acl|list",["summary","List the current ACL rules in ACL config file format","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."],"acl|save",["summary","Save the current ACL rules in the configured ACL file","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."],"acl|log",["summary","List latest events denied because of ACLs in place","since","6.0.0","group","server","complexity","O(N) with N being the number of entries shown.","arguments",[["name","operation","type","oneof","flags",["optional"],"arguments",[["name","count","type","integer"],["name","reset","type","pure-token","token","RESET"]]]]],"acl|genpass",["summary","Generate a pseudorandom secure password to use for ACL users","since","6.0.0","group","server","complexity","O(1)","arguments",[["name","bits","type","integer","flags",["optional"]]]]]],"xsetid",["summary","An internal command for replicating stream values","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the `entries_added` and `max_deleted_entry_id` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","last-id","type","string"],["name","entries_added","type","integer","token","ENTRIESADDED","since","7.0.0","flags",["optional"]],["name","max_deleted_entry_id","type","string","token","MAXDELETEDID","since","7.0.0","flags",["optional"]]]],"hmget",["summary","Get the values of all the given hash fields","since","2.0.0","group","hash","complexity","O(N) where N is the number of fields being requested.","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string","flags",["multiple"]]]],"rename",["summary","Rename a key","since","1.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","newkey","type","key","key_spec_index",1]]],"zadd",["summary","Add one or more members to a sorted set, or update its score if it already exists","since","1.2.0","group","sorted-set","complexity","O(log(N)) for each item added, where N is the number of elements in the sorted set.","history",[["2.4.0","Accepts multiple elements."],["3.0.2","Added the `XX`, `NX`, `CH` and `INCR` options."],["6.2.0","Added the `GT` and `LT` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","condition","type","oneof","since","3.0.2","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"]]],["name","comparison","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]],["name","change","type","pure-token","token","CH","since","3.0.2","flags",["optional"]],["name","increment","type","pure-token","token","INCR","since","3.0.2","flags",["optional"]],["name","score_member","type","block","flags",["multiple"],"arguments",[["name","score","type","double"],["name","member","type","string"]]]]],"lpushx",["summary","Prepend an element to a list, only if the list exists","since","2.2.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["4.0.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"readwrite",["summary","Disables read queries for a connection to a cluster replica node","since","3.0.0","group","cluster","complexity","O(1)"],"dbsize",["summary","Return the number of keys in the selected database","since","1.0.0","group","server","complexity","O(1)"],"rpushx",["summary","Append an element to a list, only if the list exists","since","2.2.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["4.0.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"flushall",["summary","Remove all keys from all databases","since","1.0.0","group","server","complexity","O(N) where N is the total number of keys in all databases","history",[["4.0.0","Added the `ASYNC` flushing mode modifier."],["6.2.0","Added the `SYNC` flushing mode modifier."]],"arguments",[["name","async","type","oneof","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC","since","4.0.0"],["name","sync","type","pure-token","token","SYNC","since","6.2.0"]]]]],"zinter",["summary","Intersect multiple sorted sets","since","6.2.0","group","sorted-set","complexity","O(N*K)+O(M*log(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"zpopmax",["summary","Remove and return members with the highest scores in a sorted set","since","5.0.0","group","sorted-set","complexity","O(log(N)*M) with N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","flags",["optional"]]]],"zcard",["summary","Get the number of members in a sorted set","since","1.2.0","group","sorted-set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"role",["summary","Return the role of the instance in the context of replication","since","2.8.12","group","server","complexity","O(1)"],"cluster",["summary","A container for cluster commands","since","3.0.0","group","cluster","complexity","Depends on subcommand.","subcommands",["cluster|forget",["summary","Remove a node from the nodes table","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","node-id","type","string"]]],"cluster|reset",["summary","Reset a Redis Cluster node","since","3.0.0","group","cluster","complexity","O(N) where N is the number of known nodes. The command may execute a FLUSHALL as a side effect.","arguments",[["name","hard_soft","type","oneof","flags",["optional"],"arguments",[["name","hard","type","pure-token","token","HARD"],["name","soft","type","pure-token","token","SOFT"]]]]],"cluster|replicate",["summary","Reconfigure a node as a replica of the specified master node","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","node-id","type","string"]]],"cluster|countkeysinslot",["summary","Return the number of local keys in the specified hash slot","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","slot","type","integer"]]],"cluster|setslot",["summary","Bind a hash slot to a specific node","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","slot","type","integer"],["name","subcommand","type","oneof","arguments",[["name","node-id","type","string","token","IMPORTING"],["name","node-id","type","string","token","MIGRATING"],["name","node-id","type","string","token","NODE"],["name","stable","type","pure-token","token","STABLE"]]]]],"cluster|failover",["summary","Forces a replica to perform a manual failover of its master.","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","options","type","oneof","flags",["optional"],"arguments",[["name","force","type","pure-token","token","FORCE"],["name","takeover","type","pure-token","token","TAKEOVER"]]]]],"cluster|addslots",["summary","Assign new hash slots to receiving node","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of hash slot arguments","arguments",[["name","slot","type","integer","flags",["multiple"]]]],"cluster|addslotsrange",["summary","Assign new hash slots to receiving node","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of the slots between the start slot and end slot arguments.","arguments",[["name","start-slot_end-slot","type","block","flags",["multiple"],"arguments",[["name","start-slot","type","integer"],["name","end-slot","type","integer"]]]]],"cluster|count-failure-reports",["summary","Return the number of failure reports active for a given node","since","3.0.0","group","cluster","complexity","O(N) where N is the number of failure reports","arguments",[["name","node-id","type","string"]]],"cluster|keyslot",["summary","Returns the hash slot of the specified key","since","3.0.0","group","cluster","complexity","O(N) where N is the number of bytes in the key","arguments",[["name","key","type","string"]]],"cluster|set-config-epoch",["summary","Set the configuration epoch in a new node","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","config-epoch","type","integer"]]],"cluster|flushslots",["summary","Delete a node's own slots information","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|links",["summary","Returns a list of all TCP links to and from peer nodes in cluster","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of Cluster nodes"],"cluster|myid",["summary","Return the node id","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|delslotsrange",["summary","Set hash slots as unbound in receiving node","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of the slots between the start slot and end slot arguments.","arguments",[["name","start-slot_end-slot","type","block","flags",["multiple"],"arguments",[["name","start-slot","type","integer"],["name","end-slot","type","integer"]]]]],"cluster|replicas",["summary","List replica nodes of the specified master node","since","5.0.0","group","cluster","complexity","O(1)","arguments",[["name","node-id","type","string"]]],"cluster|slaves",["summary","List replica nodes of the specified master node","since","3.0.0","group","cluster","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","5.0.0","replaced_by","`CLUSTER REPLICAS`","arguments",[["name","node-id","type","string"]]],"cluster|nodes",["summary","Get Cluster config for the node","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of Cluster nodes"],"cluster|getkeysinslot",["summary","Return local key names in the specified hash slot","since","3.0.0","group","cluster","complexity","O(log(N)) where N is the number of requested keys","arguments",[["name","slot","type","integer"],["name","count","type","integer"]]],"cluster|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","cluster","complexity","O(1)"],"cluster|meet",["summary","Force a node cluster to handshake with another node","since","3.0.0","group","cluster","complexity","O(1)","history",[["4.0.0","Added the optional `cluster_bus_port` argument."]],"arguments",[["name","ip","type","string"],["name","port","type","integer"],["name","cluster_bus_port","type","integer","since","4.0.0","flags",["optional"]]]],"cluster|saveconfig",["summary","Forces the node to save cluster state on disk","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|slots",["summary","Get array of Cluster slot to node mappings","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of Cluster nodes","doc_flags",["deprecated"],"deprecated_since","7.0.0","replaced_by","`CLUSTER SHARDS`","history",[["4.0.0","Added node IDs."],["7.0.0","Added additional networking metadata field."]]],"cluster|bumpepoch",["summary","Advance the cluster config epoch","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|delslots",["summary","Set hash slots as unbound in receiving node","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of hash slot arguments","arguments",[["name","slot","type","integer","flags",["multiple"]]]],"cluster|info",["summary","Provides info about Redis Cluster node state","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|shards",["summary","Get array of cluster slots to node mappings","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of cluster nodes"]]],"flushdb",["summary","Remove all keys from the current database","since","1.0.0","group","server","complexity","O(N) where N is the number of keys in the selected database","history",[["4.0.0","Added the `ASYNC` flushing mode modifier."],["6.2.0","Added the `SYNC` flushing mode modifier."]],"arguments",[["name","async","type","oneof","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC","since","4.0.0"],["name","sync","type","pure-token","token","SYNC","since","6.2.0"]]]]],"setrange",["summary","Overwrite part of a string at key starting at the specified offset","since","2.2.0","group","string","complexity","O(1), not counting the time taken to copy the new string in place. Usually, this string is very small so the amortized complexity is O(1). Otherwise, complexity is O(M) with M being the length of the value argument.","arguments",[["name","key","type","key","key_spec_index",0],["name","offset","type","integer"],["name","value","type","string"]]],"xack",["summary","Marks a pending message as correctly processed, effectively removing it from the pending entries list of the consumer group. Return value of the command is the number of messages successfully acknowledged, that is, the IDs we were actually able to resolve in the PEL.","since","5.0.0","group","stream","complexity","O(1) for each message ID processed.","arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","id","type","string","flags",["multiple"]]]],"lpush",["summary","Prepend one or multiple elements to a list","since","1.0.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["2.4.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"expire",["summary","Set a key's time to live in seconds","since","1.0.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","seconds","type","integer"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"zremrangebyscore",["summary","Remove all members in a sorted set within the given scores","since","1.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","double"],["name","max","type","double"]]],"zrevrange",["summary","Return a range of members in a sorted set, by index, with scores ordered from high to low","since","1.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements returned.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `REV` argument","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"client",["summary","A container for client connection commands","since","2.4.0","group","connection","complexity","Depends on subcommand.","subcommands",["client|unblock",["summary","Unblock a client blocked in a blocking command from a different connection","since","5.0.0","group","connection","complexity","O(log N) where N is the number of client connections","arguments",[["name","client-id","type","integer"],["name","timeout_error","type","oneof","flags",["optional"],"arguments",[["name","timeout","type","pure-token","token","TIMEOUT"],["name","error","type","pure-token","token","ERROR"]]]]],"client|trackinginfo",["summary","Return information about server assisted client side caching for the current connection","since","6.2.0","group","connection","complexity","O(1)"],"client|setname",["summary","Set the current connection name","since","2.6.9","group","connection","complexity","O(1)","arguments",[["name","connection-name","type","string"]]],"client|getname",["summary","Get the current connection name","since","2.6.9","group","connection","complexity","O(1)"],"client|caching",["summary","Instruct the server about tracking or not keys in the next request","since","6.0.0","group","connection","complexity","O(1)","arguments",[["name","mode","type","oneof","arguments",[["name","yes","type","pure-token","token","YES"],["name","no","type","pure-token","token","NO"]]]]],"client|no-evict",["summary","Set client eviction mode for the current connection","since","7.0.0","group","connection","complexity","O(1)","arguments",[["name","enabled","type","oneof","arguments",[["name","on","type","pure-token","token","ON"],["name","off","type","pure-token","token","OFF"]]]]],"client|id",["summary","Returns the client ID for the current connection","since","5.0.0","group","connection","complexity","O(1)"],"client|getredir",["summary","Get tracking notifications redirection client ID if any","since","6.0.0","group","connection","complexity","O(1)"],"client|tracking",["summary","Enable or disable server assisted client side caching support","since","6.0.0","group","connection","complexity","O(1). Some options may introduce additional complexity.","arguments",[["name","status","type","oneof","arguments",[["name","on","type","pure-token","token","ON"],["name","off","type","pure-token","token","OFF"]]],["name","client-id","type","integer","token","REDIRECT","flags",["optional"]],["name","prefix","type","string","token","PREFIX","flags",["optional","multiple","multiple_token"]],["name","bcast","type","pure-token","token","BCAST","flags",["optional"]],["name","optin","type","pure-token","token","OPTIN","flags",["optional"]],["name","optout","type","pure-token","token","OPTOUT","flags",["optional"]],["name","noloop","type","pure-token","token","NOLOOP","flags",["optional"]]]],"client|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","connection","complexity","O(1)"],"client|pause",["summary","Stop processing commands from clients for some time","since","2.9.50","group","connection","complexity","O(1)","history",[["6.2.0","`CLIENT PAUSE WRITE` mode added along with the `mode` option."]],"arguments",[["name","timeout","type","integer"],["name","mode","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","write","type","pure-token","token","WRITE"],["name","all","type","pure-token","token","ALL"]]]]],"client|reply",["summary","Instruct the server whether to reply to commands","since","3.2.0","group","connection","complexity","O(1)","arguments",[["name","on_off_skip","type","oneof","arguments",[["name","on","type","pure-token","token","ON"],["name","off","type","pure-token","token","OFF"],["name","skip","type","pure-token","token","SKIP"]]]]],"client|list",["summary","Get the list of client connections","since","2.4.0","group","connection","complexity","O(N) where N is the number of client connections","history",[["2.8.12","Added unique client `id` field."],["5.0.0","Added optional `TYPE` filter."],["6.0.0","Added `user` field."],["6.2.0","Added `argv-mem`, `tot-mem`, `laddr` and `redir` fields and the optional `ID` filter."],["7.0.0","Added `resp`, `multi-mem`, `rbs` and `rbp` fields."],["7.0.3","Added `ssub` field."]],"arguments",[["name","normal_master_replica_pubsub","type","oneof","token","TYPE","since","5.0.0","flags",["optional"],"arguments",[["name","normal","type","pure-token","token","NORMAL"],["name","master","type","pure-token","token","MASTER"],["name","replica","type","pure-token","token","REPLICA"],["name","pubsub","type","pure-token","token","PUBSUB"]]],["name","id","type","block","token","ID","since","6.2.0","flags",["optional"],"arguments",[["name","client-id","type","integer","flags",["multiple"]]]]]],"client|info",["summary","Returns information about the current client connection.","since","6.2.0","group","connection","complexity","O(1)"],"client|unpause",["summary","Resume processing of clients that were paused","since","6.2.0","group","connection","complexity","O(N) Where N is the number of paused clients"],"client|kill",["summary","Kill the connection of a client","since","2.4.0","group","connection","complexity","O(N) where N is the number of client connections","history",[["2.8.12","Added new filter format."],["2.8.12","`ID` option."],["3.2.0","Added `master` type in for `TYPE` option."],["5.0.0","Replaced `slave` `TYPE` with `replica`. `slave` still supported for backward compatibility."],["6.2.0","`LADDR` option."]],"arguments",[["name","filter","type","oneof","arguments",[["name","ip:port","type","string","deprecated_since","2.8.12"],["name","new-format","type","oneof","flags",["multiple"],"arguments",[["name","client-id","type","integer","token","ID","since","2.8.12","flags",["optional"]],["name","normal_master_slave_pubsub","type","oneof","token","TYPE","since","2.8.12","flags",["optional"],"arguments",[["name","normal","type","pure-token","token","NORMAL"],["name","master","type","pure-token","token","MASTER","since","3.2.0"],["name","slave","type","pure-token","token","SLAVE"],["name","replica","type","pure-token","token","REPLICA","since","5.0.0"],["name","pubsub","type","pure-token","token","PUBSUB"]]],["name","username","type","string","token","USER","flags",["optional"]],["name","ip:port","type","string","token","ADDR","flags",["optional"]],["name","ip:port","type","string","token","LADDR","since","6.2.0","flags",["optional"]],["name","yes/no","type","string","token","SKIPME","flags",["optional"]]]]]]]]]],"unlink",["summary","Delete a key asynchronously in another thread. Otherwise it is just as DEL, but non blocking.","since","4.0.0","group","generic","complexity","O(1) for each key removed regardless of its size. Then the command does O(N) work in a different thread in order to reclaim memory, where N is the number of allocations the deleted objects where composed of.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"hsetnx",["summary","Set the value of a hash field, only if the field does not exist","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"],["name","value","type","string"]]],"psubscribe",["summary","Listen for messages published to channels matching the given patterns","since","2.0.0","group","pubsub","complexity","O(N) where N is the number of patterns the client is already subscribed to.","arguments",[["name","pattern","type","block","flags",["multiple"],"arguments",[["name","pattern","type","pattern"]]]]],"xrevrange",["summary","Return a range of elements in a stream, with IDs matching the specified IDs interval, in reverse order (from greater to smaller IDs) compared to XRANGE","since","5.0.0","group","stream","complexity","O(N) with N being the number of elements returned. If N is constant (e.g. always asking for the first 10 elements with COUNT), you can consider it O(1).","history",[["6.2.0","Added exclusive ranges."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","end","type","string"],["name","start","type","string"],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"bitcount",["summary","Count set bits in a string","since","2.6.0","group","bitmap","complexity","O(N)","history",[["7.0.0","Added the `BYTE|BIT` option."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","index","type","block","flags",["optional"],"arguments",[["name","start","type","integer"],["name","end","type","integer"],["name","index_unit","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","byte","type","pure-token","token","BYTE"],["name","bit","type","pure-token","token","BIT"]]]]]]],"randomkey",["summary","Return a random key from the keyspace","since","1.0.0","group","generic","complexity","O(1)"],"georadius_ro",["summary","A read-only variant for GEORADIUS","since","3.2.10","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` with the `BYRADIUS` argument","history",[["6.2.0","Added the `ANY` option for `COUNT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","longitude","type","double"],["name","latitude","type","double"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","since","6.2.0","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]]]],"xread",["summary","Return never seen elements in multiple streams, with IDs greater than the ones reported by the caller for each stream. Can block.","since","5.0.0","group","stream","complexity","For each stream mentioned: O(N) with N being the number of elements being returned, it means that XREAD-ing with a fixed COUNT is O(1). Note that when the BLOCK option is used, XADD will pay O(M) time in order to serve the M clients blocked on the stream getting new data.","arguments",[["name","count","type","integer","token","COUNT","flags",["optional"]],["name","milliseconds","type","integer","token","BLOCK","flags",["optional"]],["name","streams","type","block","token","STREAMS","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","id","type","string","flags",["multiple"]]]]]],"wait",["summary","Wait for the synchronous replication of all the write commands sent in the context of the current connection","since","3.0.0","group","generic","complexity","O(1)","arguments",[["name","numreplicas","type","integer"],["name","timeout","type","integer"]]],"publish",["summary","Post a message to a channel","since","2.0.0","group","pubsub","complexity","O(N+M) where N is the number of clients subscribed to the receiving channel and M is the total number of subscribed patterns (by any client).","arguments",[["name","channel","type","string"],["name","message","type","string"]]],"zremrangebyrank",["summary","Remove all members in a sorted set within the given indexes","since","2.0.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"]]],"subscribe",["summary","Listen for messages published to the given channels","since","2.0.0","group","pubsub","complexity","O(N) where N is the number of channels to subscribe to.","arguments",[["name","channel","type","string","flags",["multiple"]]]],"copy",["summary","Copy a key","since","6.2.0","group","generic","complexity","O(N) worst case for collections, where N is the number of nested items. O(1) for string values.","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","destination-db","type","integer","token","DB","flags",["optional"]],["name","replace","type","pure-token","token","REPLACE","flags",["optional"]]]],"restore-asking",["summary","An internal command for migrating keys in a cluster","since","3.0.0","group","server","complexity","O(1) to create the new key and additional O(N*M) to reconstruct the serialized value, where N is the number of Redis objects composing the value and M their average size. For small string values the time complexity is thus O(1)+O(1*M) where M is small, so simply O(1). However for sorted set values the complexity is O(N*M*log(N)) because inserting values into sorted sets is O(log(N)).","doc_flags",["syscmd"],"history",[["3.0.0","Added the `REPLACE` modifier."],["5.0.0","Added the `ABSTTL` modifier."],["5.0.0","Added the `IDLETIME` and `FREQ` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","ttl","type","integer"],["name","serialized-value","type","string"],["name","replace","type","pure-token","token","REPLACE","since","3.0.0","flags",["optional"]],["name","absttl","type","pure-token","token","ABSTTL","since","5.0.0","flags",["optional"]],["name","seconds","type","integer","token","IDLETIME","since","5.0.0","flags",["optional"]],["name","frequency","type","integer","token","FREQ","since","5.0.0","flags",["optional"]]]],"getex",["summary","Get the value of a key and optionally set its expiration","since","6.2.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","expiration","type","oneof","flags",["optional"],"arguments",[["name","seconds","type","integer","token","EX"],["name","milliseconds","type","integer","token","PX"],["name","unix-time-seconds","type","unix-time","token","EXAT"],["name","unix-time-milliseconds","type","unix-time","token","PXAT"],["name","persist","type","pure-token","token","PERSIST"]]]]],"scard",["summary","Get the number of members in a set","since","1.0.0","group","set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"command",["summary","Get array of Redis command details","since","2.8.13","group","server","complexity","O(N) where N is the total number of Redis commands","subcommands",["command|list",["summary","Get an array of Redis command names","since","7.0.0","group","server","complexity","O(N) where N is the total number of Redis commands","arguments",[["name","filterby","type","oneof","token","FILTERBY","flags",["optional"],"arguments",[["name","module-name","type","string","token","MODULE"],["name","category","type","string","token","ACLCAT"],["name","pattern","type","pattern","token","PATTERN"]]]]],"command|getkeys",["summary","Extract keys given a full Redis command","since","2.8.13","group","server","complexity","O(N) where N is the number of arguments to the command"],"command|getkeysandflags",["summary","Extract keys and access flags given a full Redis command","since","7.0.0","group","server","complexity","O(N) where N is the number of arguments to the command"],"command|count",["summary","Get total number of Redis commands","since","2.8.13","group","server","complexity","O(1)"],"command|info",["summary","Get array of specific Redis command details, or all when no argument is given.","since","2.8.13","group","server","complexity","O(N) where N is the number of commands to look up","history",[["7.0.0","Allowed to be called with no argument to get info on all commands."]],"arguments",[["name","command-name","type","string","flags",["optional","multiple"]]]],"command|docs",["summary","Get array of specific Redis command documentation","since","7.0.0","group","server","complexity","O(N) where N is the number of commands to look up","arguments",[["name","command-name","type","string","flags",["optional","multiple"]]]],"command|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","server","complexity","O(1)"]]],"zunion",["summary","Add multiple sorted sets","since","6.2.0","group","sorted-set","complexity","O(N)+O(M*log(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"keys",["summary","Find all keys matching the given pattern","since","1.0.0","group","generic","complexity","O(N) with N being the number of keys in the database, under the assumption that the key names in the database and the given pattern have limited length.","arguments",[["name","pattern","type","pattern"]]],"pexpire",["summary","Set a key's time to live in milliseconds","since","2.6.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","milliseconds","type","integer"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"spublish",["summary","Post a message to a shard channel","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of clients subscribed to the receiving shard channel.","arguments",[["name","shardchannel","type","string"],["name","message","type","string"]]],"unwatch",["summary","Forget about all watched keys","since","2.2.0","group","transactions","complexity","O(1)"],"save",["summary","Synchronously save the dataset to disk","since","1.0.0","group","server","complexity","O(N) where N is the total number of keys in all databases"],"sinterstore",["summary","Intersect multiple sets and store the resulting set in a key","since","1.0.0","group","set","complexity","O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.","arguments",[["name","destination","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"bitfield",["summary","Perform arbitrary bitfield integer operations on strings","since","3.2.0","group","bitmap","complexity","O(1) for each subcommand specified","arguments",[["name","key","type","key","key_spec_index",0],["name","operation","type","oneof","flags",["optional","multiple"],"arguments",[["name","encoding_offset","type","block","token","GET","arguments",[["name","encoding","type","string"],["name","offset","type","integer"]]],["name","write","type","block","arguments",[["name","wrap_sat_fail","type","oneof","token","OVERFLOW","flags",["optional"],"arguments",[["name","wrap","type","pure-token","token","WRAP"],["name","sat","type","pure-token","token","SAT"],["name","fail","type","pure-token","token","FAIL"]]],["name","write_operation","type","oneof","arguments",[["name","encoding_offset_value","type","block","token","SET","arguments",[["name","encoding","type","string"],["name","offset","type","integer"],["name","value","type","integer"]]],["name","encoding_offset_increment","type","block","token","INCRBY","arguments",[["name","encoding","type","string"],["name","offset","type","integer"],["name","increment","type","integer"]]]]]]]]]]],"object",["summary","A container for object introspection commands","since","2.2.3","group","generic","complexity","Depends on subcommand.","subcommands",["object|encoding",["summary","Inspect the internal encoding of a Redis object","since","2.2.3","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"object|freq",["summary","Get the logarithmic access frequency counter of a Redis object","since","4.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"object|refcount",["summary","Get the number of references to the value of the key","since","2.2.3","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"object|idletime",["summary","Get the time since a Redis object was last accessed","since","2.2.3","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"object|help",["summary","Show helpful text about the different subcommands","since","6.2.0","group","generic","complexity","O(1)"]]],"zmpop",["summary","Remove and return members with scores in a sorted set","since","7.0.0","group","sorted-set","complexity","O(K) + O(M*log(N)) where K is the number of provided keys, N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"xpending",["summary","Return information and entries from a stream consumer group pending entries list, that are messages fetched but never acknowledged.","since","5.0.0","group","stream","complexity","O(N) with N being the number of elements returned, so asking for a small fixed number of entries per call is O(1). O(M), where M is the total number of entries scanned when used with the IDLE filter. When the command returns just the summary and the list of consumers is small, it runs in O(1) time; otherwise, an additional O(N) time for iterating every consumer.","history",[["6.2.0","Added the `IDLE` option and exclusive range intervals."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","filters","type","block","flags",["optional"],"arguments",[["name","min-idle-time","type","integer","token","IDLE","since","6.2.0","flags",["optional"]],["name","start","type","string"],["name","end","type","string"],["name","count","type","integer"],["name","consumer","type","string","flags",["optional"]]]]]],"readonly",["summary","Enables read queries for a connection to a cluster replica node","since","3.0.0","group","cluster","complexity","O(1)"],"zrank",["summary","Determine the index of a member in a sorted set","since","2.0.0","group","sorted-set","complexity","O(log(N))","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"touch",["summary","Alters the last access time of a key(s). Returns the number of existing keys specified.","since","3.2.1","group","generic","complexity","O(N) where N is the number of keys that will be touched.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"substr",["summary","Get a substring of the string stored at a key","since","1.0.0","group","string","complexity","O(N) where N is the length of the returned string. The complexity is ultimately determined by the returned length, but because creating a substring from an existing string is very cheap, it can be considered O(1) for small strings.","doc_flags",["deprecated"],"deprecated_since","2.0.0","replaced_by","`GETRANGE`","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","end","type","integer"]]],"brpop",["summary","Remove and get the last element in a list, or block until one is available","since","2.0.0","group","list","complexity","O(N) where N is the number of provided keys.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"info",["summary","Get information and statistics about the server","since","1.0.0","group","server","complexity","O(1)","history",[["7.0.0","Added support for taking multiple section arguments."]],"arguments",[["name","section","type","string","flags",["optional","multiple"]]]],"linsert",["summary","Insert an element before or after another element in a list","since","2.2.0","group","list","complexity","O(N) where N is the number of elements to traverse before seeing the value pivot. This means that inserting somewhere on the left end on the list (head) can be considered O(1) and inserting somewhere on the right end (tail) is O(N).","arguments",[["name","key","type","key","key_spec_index",0],["name","where","type","oneof","arguments",[["name","before","type","pure-token","token","BEFORE"],["name","after","type","pure-token","token","AFTER"]]],["name","pivot","type","string"],["name","element","type","string"]]],"getbit",["summary","Returns the bit value at offset in the string value stored at key","since","2.2.0","group","bitmap","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","offset","type","integer"]]],"multi",["summary","Mark the start of a transaction block","since","1.2.0","group","transactions","complexity","O(1)"],"reset",["summary","Reset the connection","since","6.2.0","group","connection","complexity","O(1)"],"spop",["summary","Remove and return one or multiple random members from a set","since","1.0.0","group","set","complexity","Without the count argument O(1), otherwise O(N) where N is the value of the passed count.","history",[["3.2.0","Added the `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","3.2.0","flags",["optional"]]]],"replconf",["summary","An internal command for configuring the replication stream","since","3.0.0","group","server","complexity","O(1)","doc_flags",["syscmd"]],"hscan",["summary","Incrementally iterate hash fields and associated values","since","2.8.0","group","hash","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection..","arguments",[["name","key","type","key","key_spec_index",0],["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"debug",["summary","A container for debugging commands","since","1.0.0","group","server","complexity","Depends on subcommand.","doc_flags",["syscmd"]],"incrby",["summary","Increment the integer value of a key by the given amount","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","increment","type","integer"]]],"setbit",["summary","Sets or clears the bit at offset in the string value stored at key","since","2.2.0","group","bitmap","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","offset","type","integer"],["name","value","type","integer"]]],"sunsubscribe",["summary","Stop listening for messages posted to the given shard channels","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of clients already subscribed to a shard channel.","arguments",[["name","shardchannel","type","string","flags",["optional","multiple"]]]],"bgrewriteaof",["summary","Asynchronously rewrite the append-only file","since","1.0.0","group","server","complexity","O(1)"],"renamenx",["summary","Rename a key, only if the new key does not exist","since","1.0.0","group","generic","complexity","O(1)","history",[["3.2.0","The command no longer returns an error when source and destination names are the same."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","newkey","type","key","key_spec_index",1]]],"pfadd",["summary","Adds the specified elements to the specified HyperLogLog.","since","2.8.9","group","hyperloglog","complexity","O(1) to add every element.","arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["optional","multiple"]]]],"hincrbyfloat",["summary","Increment the float value of a hash field by the given amount","since","2.6.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"],["name","increment","type","double"]]],"shutdown",["summary","Synchronously save the dataset to disk and then shut down the server","since","1.0.0","group","server","complexity","O(N) when saving, where N is the total number of keys in all databases when saving data, otherwise O(1)","history",[["7.0.0","Added the `NOW`, `FORCE` and `ABORT` modifiers."]],"arguments",[["name","nosave_save","type","oneof","flags",["optional"],"arguments",[["name","nosave","type","pure-token","token","NOSAVE"],["name","save","type","pure-token","token","SAVE"]]],["name","now","type","pure-token","token","NOW","since","7.0.0","flags",["optional"]],["name","force","type","pure-token","token","FORCE","since","7.0.0","flags",["optional"]],["name","abort","type","pure-token","token","ABORT","since","7.0.0","flags",["optional"]]]],"lolwut",["summary","Display some computer art and the Redis version","since","5.0.0","group","server","arguments",[["name","version","type","integer","token","VERSION","flags",["optional"]]]],"georadiusbymember",["summary","Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a member","since","3.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` and `GEOSEARCHSTORE` with the `BYRADIUS` and `FROMMEMBER` arguments","history",[["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","key","type","key","key_spec_index",1,"token","STORE","flags",["optional"]],["name","key","type","key","key_spec_index",2,"token","STOREDIST","flags",["optional"]]]],"swapdb",["summary","Swaps two Redis databases","since","4.0.0","group","server","complexity","O(N) where N is the count of clients watching or blocking on keys from both databases.","arguments",[["name","index1","type","integer"],["name","index2","type","integer"]]],"pttl",["summary","Get the time to live for a key in milliseconds","since","2.6.0","group","generic","complexity","O(1)","history",[["2.8.0","Added the -2 reply."]],"arguments",[["name","key","type","key","key_spec_index",0]]],"bgsave",["summary","Asynchronously save the dataset to disk","since","1.0.0","group","server","complexity","O(1)","history",[["3.2.2","Added the `SCHEDULE` option."]],"arguments",[["name","schedule","type","pure-token","token","SCHEDULE","since","3.2.2","flags",["optional"]]]],"select",["summary","Change the selected database for the current connection","since","1.0.0","group","connection","complexity","O(1)","arguments",[["name","index","type","integer"]]],"zrange",["summary","Return a range of members in a sorted set","since","1.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements returned.","history",[["6.2.0","Added the `REV`, `BYSCORE`, `BYLEX` and `LIMIT` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","string"],["name","stop","type","string"],["name","sortby","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","byscore","type","pure-token","token","BYSCORE"],["name","bylex","type","pure-token","token","BYLEX"]]],["name","rev","type","pure-token","token","REV","since","6.2.0","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","since","6.2.0","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"pubsub",["summary","A container for Pub/Sub commands","since","2.8.0","group","pubsub","complexity","Depends on subcommand.","subcommands",["pubsub|help",["summary","Show helpful text about the different subcommands","since","6.2.0","group","pubsub","complexity","O(1)"],"pubsub|numsub",["summary","Get the count of subscribers for channels","since","2.8.0","group","pubsub","complexity","O(N) for the NUMSUB subcommand, where N is the number of requested channels","arguments",[["name","channel","type","string","flags",["optional","multiple"]]]],"pubsub|numpat",["summary","Get the count of unique patterns pattern subscriptions","since","2.8.0","group","pubsub","complexity","O(1)"],"pubsub|shardnumsub",["summary","Get the count of subscribers for shard channels","since","7.0.0","group","pubsub","complexity","O(N) for the SHARDNUMSUB subcommand, where N is the number of requested shard channels","arguments",[["name","shardchannel","type","string","flags",["optional","multiple"]]]],"pubsub|channels",["summary","List active channels","since","2.8.0","group","pubsub","complexity","O(N) where N is the number of active channels, and assuming constant time pattern matching (relatively short channels and patterns)","arguments",[["name","pattern","type","pattern","flags",["optional"]]]],"pubsub|shardchannels",["summary","List active shard channels","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of active shard channels, and assuming constant time pattern matching (relatively short shard channels).","arguments",[["name","pattern","type","pattern","flags",["optional"]]]]]],"georadius",["summary","Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a point","since","3.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` and `GEOSEARCHSTORE` with the `BYRADIUS` argument","history",[["6.2.0","Added the `ANY` option for `COUNT`."],["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","longitude","type","double"],["name","latitude","type","double"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","since","6.2.0","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","key","type","key","key_spec_index",1,"token","STORE","flags",["optional"]],["name","key","type","key","key_spec_index",2,"token","STOREDIST","flags",["optional"]]]],"getrange",["summary","Get a substring of the string stored at a key","since","2.4.0","group","string","complexity","O(N) where N is the length of the returned string. The complexity is ultimately determined by the returned length, but because creating a substring from an existing string is very cheap, it can be considered O(1) for small strings.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","end","type","integer"]]],"zremrangebylex",["summary","Remove all members in a sorted set between the given lexicographical range","since","2.8.9","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","string"],["name","max","type","string"]]],"bitpos",["summary","Find first bit set or clear in a string","since","2.8.7","group","bitmap","complexity","O(N)","history",[["7.0.0","Added the `BYTE|BIT` option."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","bit","type","integer"],["name","index","type","block","flags",["optional"],"arguments",[["name","start","type","integer"],["name","end_index","type","block","flags",["optional"],"arguments",[["name","end","type","integer"],["name","index_unit","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","byte","type","pure-token","token","BYTE"],["name","bit","type","pure-token","token","BIT"]]]]]]]]],"blmpop",["summary","Pop elements from a list, or block until one is available","since","7.0.0","group","list","complexity","O(N+M) where N is the number of provided keys and M is the number of elements returned.","arguments",[["name","timeout","type","double"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"append",["summary","Append a value to a key","since","2.0.0","group","string","complexity","O(1). The amortized time complexity is O(1) assuming the appended value is small and the already present value is of any size, since the dynamic string library used by Redis will double the free space available on every reallocation.","arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]],"sdiffstore",["summary","Subtract multiple sets and store the resulting set in a key","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","destination","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"hdel",["summary","Delete one or more hash fields","since","2.0.0","group","hash","complexity","O(N) where N is the number of fields to be removed.","history",[["2.4.0","Accepts multiple `field` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string","flags",["multiple"]]]],"hlen",["summary","Get the number of fields in a hash","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"sort",["summary","Sort the elements in a list, set or sorted set","since","1.0.0","group","generic","complexity","O(N+M*log(M)) where N is the number of elements in the list or set to sort, and M the number of returned elements. When the elements are not sorted, complexity is O(N).","arguments",[["name","key","type","key","key_spec_index",0],["name","pattern","type","pattern","key_spec_index",1,"token","BY","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]],["name","pattern","type","pattern","key_spec_index",1,"token","GET","flags",["optional","multiple","multiple_token"]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","sorting","type","pure-token","token","ALPHA","flags",["optional"]],["name","destination","type","key","key_spec_index",2,"token","STORE","flags",["optional"]]]],"zintercard",["summary","Intersect multiple sorted sets and return the cardinality of the result","since","7.0.0","group","sorted-set","complexity","O(N*K) worst case with N being the smallest input sorted set, K being the number of input sorted sets.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","limit","type","integer","token","LIMIT","flags",["optional"]]]],"setex",["summary","Set the value and expiration of a key","since","2.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","seconds","type","integer"],["name","value","type","string"]]],"zcount",["summary","Count the members in a sorted set with scores within the given values","since","2.0.0","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","double"],["name","max","type","double"]]],"msetnx",["summary","Set multiple keys to multiple values, only if none of the keys exist","since","1.0.1","group","string","complexity","O(N) where N is the number of keys to set.","arguments",[["name","key_value","type","block","flags",["multiple"],"arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]]]],"latency",["summary","A container for latency diagnostics commands","since","2.8.13","group","server","complexity","Depends on subcommand.","subcommands",["latency|help",["summary","Show helpful text about the different subcommands.","since","2.8.13","group","server","complexity","O(1)"],"latency|doctor",["summary","Return a human readable latency analysis report.","since","2.8.13","group","server","complexity","O(1)"],"latency|reset",["summary","Reset latency data for one or more events.","since","2.8.13","group","server","complexity","O(1)","arguments",[["name","event","type","string","flags",["optional","multiple"]]]],"latency|histogram",["summary","Return the cumulative distribution of latencies of a subset of commands or all.","since","7.0.0","group","server","complexity","O(N) where N is the number of commands with latency information being retrieved.","arguments",[["name","command","type","string","flags",["optional","multiple"]]]],"latency|history",["summary","Return timestamp-latency samples for the event.","since","2.8.13","group","server","complexity","O(1)","arguments",[["name","event","type","string"]]],"latency|latest",["summary","Return the latest latency samples for all events.","since","2.8.13","group","server","complexity","O(1)"],"latency|graph",["summary","Return a latency graph for the event.","since","2.8.13","group","server","complexity","O(1)","arguments",[["name","event","type","string"]]]]],"geodist",["summary","Returns the distance between two members of a geospatial index","since","3.2.0","group","geo","complexity","O(log(N))","arguments",[["name","key","type","key","key_spec_index",0],["name","member1","type","string"],["name","member2","type","string"],["name","unit","type","oneof","flags",["optional"],"arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]],"geoadd",["summary","Add one or more geospatial items in the geospatial index represented using a sorted set","since","3.2.0","group","geo","complexity","O(log(N)) for each item added, where N is the number of elements in the sorted set.","history",[["6.2.0","Added the `CH`, `NX` and `XX` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","condition","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"]]],["name","change","type","pure-token","token","CH","since","6.2.0","flags",["optional"]],["name","longitude_latitude_member","type","block","flags",["multiple"],"arguments",[["name","longitude","type","double"],["name","latitude","type","double"],["name","member","type","string"]]]]],"zdiff",["summary","Subtract multiple sorted sets","since","6.2.0","group","sorted-set","complexity","O(L + (N-K)log(N)) worst case where L is the total number of elements in all the sets, N is the size of the first set, and K is the size of the result set.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"bzpopmax",["summary","Remove and return the member with the highest score from one or more sorted sets, or block until one is available","since","5.0.0","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"incrbyfloat",["summary","Increment the float value of a key by the given amount","since","2.6.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","increment","type","double"]]],"move",["summary","Move a key to another database","since","1.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","db","type","integer"]]],"failover",["summary","Start a coordinated failover between this server and one of its replicas.","since","6.2.0","group","server","complexity","O(1)","arguments",[["name","target","type","block","token","TO","flags",["optional"],"arguments",[["name","host","type","string"],["name","port","type","integer"],["name","force","type","pure-token","token","FORCE","flags",["optional"]]]],["name","abort","type","pure-token","token","ABORT","flags",["optional"]],["name","milliseconds","type","integer","token","TIMEOUT","flags",["optional"]]]],"brpoplpush",["summary","Pop an element from a list, push it to another list and return it; or block until one is available","since","2.2.0","group","list","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`BLMOVE` with the `RIGHT` and `LEFT` arguments","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","timeout","type","double"]]],"psync",["summary","Internal command used for replication","since","2.8.0","group","server","arguments",[["name","replicationid","type","string"],["name","offset","type","integer"]]],"memory",["summary","A container for memory diagnostics commands","since","4.0.0","group","server","complexity","Depends on subcommand.","subcommands",["memory|help",["summary","Show helpful text about the different subcommands","since","4.0.0","group","server","complexity","O(1)"],"memory|doctor",["summary","Outputs memory problems report","since","4.0.0","group","server","complexity","O(1)"],"memory|purge",["summary","Ask the allocator to release memory","since","4.0.0","group","server","complexity","Depends on how much memory is allocated, could be slow"],"memory|stats",["summary","Show memory usage details","since","4.0.0","group","server","complexity","O(1)"],"memory|malloc-stats",["summary","Show allocator internal stats","since","4.0.0","group","server","complexity","Depends on how much memory is allocated, could be slow"],"memory|usage",["summary","Estimate the memory usage of a key","since","4.0.0","group","server","complexity","O(N) where N is the number of samples.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","token","SAMPLES","flags",["optional"]]]]]],"evalsha_ro",["summary","Execute a read-only Lua script server side","since","7.0.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","sha1","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"sunion",["summary","Add multiple sets","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"srandmember",["summary","Get one or multiple random members from a set","since","1.0.0","group","set","complexity","Without the count argument O(1), otherwise O(N) where N is the absolute value of the passed count.","history",[["2.6.0","Added the optional `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","2.6.0","flags",["optional"]]]],"rpoplpush",["summary","Remove the last element in a list, prepend it to another list and return it","since","1.2.0","group","list","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`LMOVE` with the `RIGHT` and `LEFT` arguments","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1]]],"zunionstore",["summary","Add multiple sorted sets and store the resulting sorted set in a new key","since","2.0.0","group","sorted-set","complexity","O(N)+O(M log(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.","arguments",[["name","destination","type","key","key_spec_index",0],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",1,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]]]],"rpop",["summary","Remove and get the last elements in a list","since","1.0.0","group","list","complexity","O(N) where N is the number of elements returned","history",[["6.2.0","Added the `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","6.2.0","flags",["optional"]]]],"restore",["summary","Create a key using the provided serialized value, previously obtained using DUMP.","since","2.6.0","group","generic","complexity","O(1) to create the new key and additional O(N*M) to reconstruct the serialized value, where N is the number of Redis objects composing the value and M their average size. For small string values the time complexity is thus O(1)+O(1*M) where M is small, so simply O(1). However for sorted set values the complexity is O(N*M*log(N)) because inserting values into sorted sets is O(log(N)).","history",[["3.0.0","Added the `REPLACE` modifier."],["5.0.0","Added the `ABSTTL` modifier."],["5.0.0","Added the `IDLETIME` and `FREQ` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","ttl","type","integer"],["name","serialized-value","type","string"],["name","replace","type","pure-token","token","REPLACE","since","3.0.0","flags",["optional"]],["name","absttl","type","pure-token","token","ABSTTL","since","5.0.0","flags",["optional"]],["name","seconds","type","integer","token","IDLETIME","since","5.0.0","flags",["optional"]],["name","frequency","type","integer","token","FREQ","since","5.0.0","flags",["optional"]]]],"zrem",["summary","Remove one or more members from a sorted set","since","1.2.0","group","sorted-set","complexity","O(M*log(N)) with N being the number of elements in the sorted set and M the number of elements to be removed.","history",[["2.4.0","Accepts multiple elements."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"zlexcount",["summary","Count the number of members in a sorted set between a given lexicographical range","since","2.8.9","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","string"],["name","max","type","string"]]],"exec",["summary","Execute all commands issued after MULTI","since","1.2.0","group","transactions","complexity","Depends on commands in the transaction"],"set",["summary","Set the string value of a key","since","1.0.0","group","string","complexity","O(1)","history",[["2.6.12","Added the `EX`, `PX`, `NX` and `XX` options."],["6.0.0","Added the `KEEPTTL` option."],["6.2.0","Added the `GET`, `EXAT` and `PXAT` option."],["7.0.0","Allowed the `NX` and `GET` options to be used together."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"],["name","condition","type","oneof","since","2.6.12","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"]]],["name","get","type","pure-token","token","GET","since","6.2.0","flags",["optional"]],["name","expiration","type","oneof","flags",["optional"],"arguments",[["name","seconds","type","integer","token","EX","since","2.6.12"],["name","milliseconds","type","integer","token","PX","since","2.6.12"],["name","unix-time-seconds","type","unix-time","token","EXAT","since","6.2.0"],["name","unix-time-milliseconds","type","unix-time","token","PXAT","since","6.2.0"],["name","keepttl","type","pure-token","token","KEEPTTL","since","6.0.0"]]]]],"incr",["summary","Increment the integer value of a key by one","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"zrangebyscore",["summary","Return a range of members in a sorted set, by score","since","1.0.5","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `BYSCORE` argument","history",[["2.0.0","Added the `WITHSCORES` modifier."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","double"],["name","max","type","double"],["name","withscores","type","pure-token","token","WITHSCORES","since","2.0.0","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"georadiusbymember_ro",["summary","A read-only variant for GEORADIUSBYMEMBER","since","3.2.10","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` with the `BYRADIUS` and `FROMMEMBER` arguments","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]]]],"watch",["summary","Watch the given keys to determine execution of the MULTI/EXEC block","since","2.2.0","group","transactions","complexity","O(1) for every key.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"decr",["summary","Decrement the integer value of a key by one","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"hset",["summary","Set the string value of a hash field","since","2.0.0","group","hash","complexity","O(1) for each field/value pair added, so O(N) to add N field/value pairs when the command is called with multiple field/value pairs.","history",[["4.0.0","Accepts multiple `field` and `value` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","field_value","type","block","flags",["multiple"],"arguments",[["name","field","type","string"],["name","value","type","string"]]]]],"xdel",["summary","Removes the specified entries from the stream. Returns the number of items actually deleted, that may be different from the number of IDs passed in case certain IDs do not exist.","since","5.0.0","group","stream","complexity","O(1) for each single item to delete in the stream, regardless of the stream size.","arguments",[["name","key","type","key","key_spec_index",0],["name","id","type","string","flags",["multiple"]]]],"getdel",["summary","Get the value of a key and delete the key","since","6.2.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"auth",["summary","Authenticate to the server","since","1.0.0","group","connection","complexity","O(N) where N is the number of passwords defined for the user","history",[["6.0.0","Added ACL style (username and password)."]],"arguments",[["name","username","type","string","since","6.0.0","flags",["optional"]],["name","password","type","string"]]],"geosearchstore",["summary","Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle, and store the result in another key.","since","6.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements in the grid-aligned bounding box area around the shape provided as the filter and M is the number of items inside the shape","history",[["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","destination","type","key","key_spec_index",0],["name","source","type","key","key_spec_index",1],["name","from","type","oneof","arguments",[["name","member","type","string","token","FROMMEMBER"],["name","longitude_latitude","type","block","token","FROMLONLAT","arguments",[["name","longitude","type","double"],["name","latitude","type","double"]]]]],["name","by","type","oneof","arguments",[["name","circle","type","block","arguments",[["name","radius","type","double","token","BYRADIUS"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]],["name","box","type","block","arguments",[["name","width","type","double","token","BYBOX"],["name","height","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","storedist","type","pure-token","token","STOREDIST","flags",["optional"]]]],"lrem",["summary","Remove elements from a list","since","1.0.0","group","list","complexity","O(N+M) where N is the length of the list and M is the number of elements removed.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer"],["name","element","type","string"]]],"bitop",["summary","Perform bitwise operations between strings","since","2.6.0","group","bitmap","complexity","O(N)","arguments",[["name","operation","type","string"],["name","destkey","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"monitor",["summary","Listen for all requests received by the server in real time","since","1.0.0","group","server"]] \ No newline at end of file +["zadd",["summary","Add one or more members to a sorted set, or update its score if it already exists","since","1.2.0","group","sorted-set","complexity","O(log(N)) for each item added, where N is the number of elements in the sorted set.","history",[["2.4.0","Accepts multiple elements."],["3.0.2","Added the `XX`, `NX`, `CH` and `INCR` options."],["6.2.0","Added the `GT` and `LT` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","condition","type","oneof","since","3.0.2","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"]]],["name","comparison","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]],["name","change","type","pure-token","token","CH","since","3.0.2","flags",["optional"]],["name","increment","type","pure-token","token","INCR","since","3.0.2","flags",["optional"]],["name","score_member","type","block","flags",["multiple"],"arguments",[["name","score","type","double"],["name","member","type","string"]]]]],"lolwut",["summary","Display some computer art and the Redis version","since","5.0.0","group","server","arguments",[["name","version","type","integer","token","VERSION","flags",["optional"]]]],"xpending",["summary","Return information and entries from a stream consumer group pending entries list, that are messages fetched but never acknowledged.","since","5.0.0","group","stream","complexity","O(N) with N being the number of elements returned, so asking for a small fixed number of entries per call is O(1). O(M), where M is the total number of entries scanned when used with the IDLE filter. When the command returns just the summary and the list of consumers is small, it runs in O(1) time; otherwise, an additional O(N) time for iterating every consumer.","history",[["6.2.0","Added the `IDLE` option and exclusive range intervals."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","filters","type","block","flags",["optional"],"arguments",[["name","min-idle-time","type","integer","token","IDLE","since","6.2.0","flags",["optional"]],["name","start","type","string"],["name","end","type","string"],["name","count","type","integer"],["name","consumer","type","string","flags",["optional"]]]]]],"object",["summary","A container for object introspection commands","since","2.2.3","group","generic","complexity","Depends on subcommand.","subcommands",["object|encoding",["summary","Inspect the internal encoding of a Redis object","since","2.2.3","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"object|freq",["summary","Get the logarithmic access frequency counter of a Redis object","since","4.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"object|help",["summary","Show helpful text about the different subcommands","since","6.2.0","group","generic","complexity","O(1)"],"object|idletime",["summary","Get the time since a Redis object was last accessed","since","2.2.3","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"object|refcount",["summary","Get the number of references to the value of the key","since","2.2.3","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]]]],"renamenx",["summary","Rename a key, only if the new key does not exist","since","1.0.0","group","generic","complexity","O(1)","history",[["3.2.0","The command no longer returns an error when source and destination names are the same."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","newkey","type","key","key_spec_index",1]]],"rpush",["summary","Append one or multiple elements to a list","since","1.0.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["2.4.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"zrangestore",["summary","Store a range of members from sorted set into another key","since","6.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements stored into the destination key.","arguments",[["name","dst","type","key","key_spec_index",0],["name","src","type","key","key_spec_index",1],["name","min","type","string"],["name","max","type","string"],["name","sortby","type","oneof","flags",["optional"],"arguments",[["name","byscore","type","pure-token","token","BYSCORE"],["name","bylex","type","pure-token","token","BYLEX"]]],["name","rev","type","pure-token","token","REV","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"failover",["summary","Start a coordinated failover between this server and one of its replicas.","since","6.2.0","group","server","complexity","O(1)","arguments",[["name","target","type","block","token","TO","flags",["optional"],"arguments",[["name","host","type","string"],["name","port","type","integer"],["name","force","type","pure-token","token","FORCE","flags",["optional"]]]],["name","abort","type","pure-token","token","ABORT","flags",["optional"]],["name","milliseconds","type","integer","token","TIMEOUT","flags",["optional"]]]],"client",["summary","A container for client connection commands","since","2.4.0","group","connection","complexity","Depends on subcommand.","subcommands",["client|caching",["summary","Instruct the server about tracking or not keys in the next request","since","6.0.0","group","connection","complexity","O(1)","arguments",[["name","mode","type","oneof","arguments",[["name","yes","type","pure-token","token","YES"],["name","no","type","pure-token","token","NO"]]]]],"client|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","connection","complexity","O(1)"],"client|list",["summary","Get the list of client connections","since","2.4.0","group","connection","complexity","O(N) where N is the number of client connections","history",[["2.8.12","Added unique client `id` field."],["5.0.0","Added optional `TYPE` filter."],["6.0.0","Added `user` field."],["6.2.0","Added `argv-mem`, `tot-mem`, `laddr` and `redir` fields and the optional `ID` filter."],["7.0.0","Added `resp`, `multi-mem`, `rbs` and `rbp` fields."],["7.0.3","Added `ssub` field."]],"arguments",[["name","normal_master_replica_pubsub","type","oneof","token","TYPE","since","5.0.0","flags",["optional"],"arguments",[["name","normal","type","pure-token","token","NORMAL"],["name","master","type","pure-token","token","MASTER"],["name","replica","type","pure-token","token","REPLICA"],["name","pubsub","type","pure-token","token","PUBSUB"]]],["name","id","type","block","token","ID","since","6.2.0","flags",["optional"],"arguments",[["name","client-id","type","integer","flags",["multiple"]]]]]],"client|unblock",["summary","Unblock a client blocked in a blocking command from a different connection","since","5.0.0","group","connection","complexity","O(log N) where N is the number of client connections","arguments",[["name","client-id","type","integer"],["name","timeout_error","type","oneof","flags",["optional"],"arguments",[["name","timeout","type","pure-token","token","TIMEOUT"],["name","error","type","pure-token","token","ERROR"]]]]],"client|pause",["summary","Stop processing commands from clients for some time","since","2.9.50","group","connection","complexity","O(1)","history",[["6.2.0","`CLIENT PAUSE WRITE` mode added along with the `mode` option."]],"arguments",[["name","timeout","type","integer"],["name","mode","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","write","type","pure-token","token","WRITE"],["name","all","type","pure-token","token","ALL"]]]]],"client|trackinginfo",["summary","Return information about server assisted client side caching for the current connection","since","6.2.0","group","connection","complexity","O(1)"],"client|reply",["summary","Instruct the server whether to reply to commands","since","3.2.0","group","connection","complexity","O(1)","arguments",[["name","on_off_skip","type","oneof","arguments",[["name","on","type","pure-token","token","ON"],["name","off","type","pure-token","token","OFF"],["name","skip","type","pure-token","token","SKIP"]]]]],"client|id",["summary","Returns the client ID for the current connection","since","5.0.0","group","connection","complexity","O(1)"],"client|no-evict",["summary","Set client eviction mode for the current connection","since","7.0.0","group","connection","complexity","O(1)","arguments",[["name","enabled","type","oneof","arguments",[["name","on","type","pure-token","token","ON"],["name","off","type","pure-token","token","OFF"]]]]],"client|getname",["summary","Get the current connection name","since","2.6.9","group","connection","complexity","O(1)"],"client|info",["summary","Returns information about the current client connection.","since","6.2.0","group","connection","complexity","O(1)"],"client|kill",["summary","Kill the connection of a client","since","2.4.0","group","connection","complexity","O(N) where N is the number of client connections","history",[["2.8.12","Added new filter format."],["2.8.12","`ID` option."],["3.2.0","Added `master` type in for `TYPE` option."],["5.0.0","Replaced `slave` `TYPE` with `replica`. `slave` still supported for backward compatibility."],["6.2.0","`LADDR` option."]],"arguments",[["name","filter","type","oneof","arguments",[["name","ip:port","type","string","deprecated_since","2.8.12"],["name","new-format","type","oneof","flags",["multiple"],"arguments",[["name","client-id","type","integer","token","ID","since","2.8.12","flags",["optional"]],["name","normal_master_slave_pubsub","type","oneof","token","TYPE","since","2.8.12","flags",["optional"],"arguments",[["name","normal","type","pure-token","token","NORMAL"],["name","master","type","pure-token","token","MASTER","since","3.2.0"],["name","slave","type","pure-token","token","SLAVE"],["name","replica","type","pure-token","token","REPLICA","since","5.0.0"],["name","pubsub","type","pure-token","token","PUBSUB"]]],["name","username","type","string","token","USER","flags",["optional"]],["name","ip:port","type","string","token","ADDR","flags",["optional"]],["name","ip:port","type","string","token","LADDR","since","6.2.0","flags",["optional"]],["name","yes/no","type","string","token","SKIPME","flags",["optional"]]]]]]]],"client|unpause",["summary","Resume processing of clients that were paused","since","6.2.0","group","connection","complexity","O(N) Where N is the number of paused clients"],"client|setname",["summary","Set the current connection name","since","2.6.9","group","connection","complexity","O(1)","arguments",[["name","connection-name","type","string"]]],"client|getredir",["summary","Get tracking notifications redirection client ID if any","since","6.0.0","group","connection","complexity","O(1)"],"client|tracking",["summary","Enable or disable server assisted client side caching support","since","6.0.0","group","connection","complexity","O(1). Some options may introduce additional complexity.","arguments",[["name","status","type","oneof","arguments",[["name","on","type","pure-token","token","ON"],["name","off","type","pure-token","token","OFF"]]],["name","client-id","type","integer","token","REDIRECT","flags",["optional"]],["name","prefix","type","string","token","PREFIX","flags",["optional","multiple","multiple_token"]],["name","bcast","type","pure-token","token","BCAST","flags",["optional"]],["name","optin","type","pure-token","token","OPTIN","flags",["optional"]],["name","optout","type","pure-token","token","OPTOUT","flags",["optional"]],["name","noloop","type","pure-token","token","NOLOOP","flags",["optional"]]]]]],"pexpire",["summary","Set a key's time to live in milliseconds","since","2.6.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","milliseconds","type","integer"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"lpop",["summary","Remove and get the first elements in a list","since","1.0.0","group","list","complexity","O(N) where N is the number of elements returned","history",[["6.2.0","Added the `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","6.2.0","flags",["optional"]]]],"shutdown",["summary","Synchronously save the dataset to disk and then shut down the server","since","1.0.0","group","server","complexity","O(N) when saving, where N is the total number of keys in all databases when saving data, otherwise O(1)","history",[["7.0.0","Added the `NOW`, `FORCE` and `ABORT` modifiers."]],"arguments",[["name","nosave_save","type","oneof","flags",["optional"],"arguments",[["name","nosave","type","pure-token","token","NOSAVE"],["name","save","type","pure-token","token","SAVE"]]],["name","now","type","pure-token","token","NOW","since","7.0.0","flags",["optional"]],["name","force","type","pure-token","token","FORCE","since","7.0.0","flags",["optional"]],["name","abort","type","pure-token","token","ABORT","since","7.0.0","flags",["optional"]]]],"echo",["summary","Echo the given string","since","1.0.0","group","connection","complexity","O(1)","arguments",[["name","message","type","string"]]],"fcall_ro",["summary","Invoke a read-only function","since","7.0.0","group","scripting","complexity","Depends on the function that is executed.","arguments",[["name","function","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"georadius",["summary","Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a point","since","3.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` and `GEOSEARCHSTORE` with the `BYRADIUS` argument","history",[["6.2.0","Added the `ANY` option for `COUNT`."],["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","longitude","type","double"],["name","latitude","type","double"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","since","6.2.0","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","key","type","key","key_spec_index",1,"token","STORE","flags",["optional"]],["name","key","type","key","key_spec_index",2,"token","STOREDIST","flags",["optional"]]]],"eval_ro",["summary","Execute a read-only Lua script server side","since","7.0.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","script","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"dbsize",["summary","Return the number of keys in the selected database","since","1.0.0","group","server","complexity","O(1)"],"get",["summary","Get the value of a key","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"xsetid",["summary","An internal command for replicating stream values","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the `entries_added` and `max_deleted_entry_id` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","last-id","type","string"],["name","entries_added","type","integer","token","ENTRIESADDED","since","7.0.0","flags",["optional"]],["name","max_deleted_entry_id","type","string","token","MAXDELETEDID","since","7.0.0","flags",["optional"]]]],"bzpopmax",["summary","Remove and return the member with the highest score from one or more sorted sets, or block until one is available","since","5.0.0","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"time",["summary","Return the current server time","since","2.6.0","group","server","complexity","O(1)"],"hdel",["summary","Delete one or more hash fields","since","2.0.0","group","hash","complexity","O(N) where N is the number of fields to be removed.","history",[["2.4.0","Accepts multiple `field` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string","flags",["multiple"]]]],"keys",["summary","Find all keys matching the given pattern","since","1.0.0","group","generic","complexity","O(N) with N being the number of keys in the database, under the assumption that the key names in the database and the given pattern have limited length.","arguments",[["name","pattern","type","pattern"]]],"lcs",["summary","Find longest common substring","since","7.0.0","group","string","complexity","O(N*M) where N and M are the lengths of s1 and s2, respectively","arguments",[["name","key1","type","key","key_spec_index",0],["name","key2","type","key","key_spec_index",0],["name","len","type","pure-token","token","LEN","flags",["optional"]],["name","idx","type","pure-token","token","IDX","flags",["optional"]],["name","len","type","integer","token","MINMATCHLEN","flags",["optional"]],["name","withmatchlen","type","pure-token","token","WITHMATCHLEN","flags",["optional"]]]],"copy",["summary","Copy a key","since","6.2.0","group","generic","complexity","O(N) worst case for collections, where N is the number of nested items. O(1) for string values.","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","destination-db","type","integer","token","DB","flags",["optional"]],["name","replace","type","pure-token","token","REPLACE","flags",["optional"]]]],"zremrangebyrank",["summary","Remove all members in a sorted set within the given indexes","since","2.0.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"]]],"touch",["summary","Alters the last access time of a key(s). Returns the number of existing keys specified.","since","3.2.1","group","generic","complexity","O(N) where N is the number of keys that will be touched.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"hrandfield",["summary","Get one or multiple random fields from a hash","since","6.2.0","group","hash","complexity","O(N) where N is the number of fields returned","arguments",[["name","key","type","key","key_spec_index",0],["name","options","type","block","flags",["optional"],"arguments",[["name","count","type","integer"],["name","withvalues","type","pure-token","token","WITHVALUES","flags",["optional"]]]]]],"command",["summary","Get array of Redis command details","since","2.8.13","group","server","complexity","O(N) where N is the total number of Redis commands","subcommands",["command|getkeys",["summary","Extract keys given a full Redis command","since","2.8.13","group","server","complexity","O(N) where N is the number of arguments to the command"],"command|info",["summary","Get array of specific Redis command details, or all when no argument is given.","since","2.8.13","group","server","complexity","O(N) where N is the number of commands to look up","history",[["7.0.0","Allowed to be called with no argument to get info on all commands."]],"arguments",[["name","command-name","type","string","flags",["optional","multiple"]]]],"command|getkeysandflags",["summary","Extract keys and access flags given a full Redis command","since","7.0.0","group","server","complexity","O(N) where N is the number of arguments to the command"],"command|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","server","complexity","O(1)"],"command|list",["summary","Get an array of Redis command names","since","7.0.0","group","server","complexity","O(N) where N is the total number of Redis commands","arguments",[["name","filterby","type","oneof","token","FILTERBY","flags",["optional"],"arguments",[["name","module-name","type","string","token","MODULE"],["name","category","type","string","token","ACLCAT"],["name","pattern","type","pattern","token","PATTERN"]]]]],"command|count",["summary","Get total number of Redis commands","since","2.8.13","group","server","complexity","O(1)"],"command|docs",["summary","Get array of specific Redis command documentation","since","7.0.0","group","server","complexity","O(N) where N is the number of commands to look up","arguments",[["name","command-name","type","string","flags",["optional","multiple"]]]]]],"latency",["summary","A container for latency diagnostics commands","since","2.8.13","group","server","complexity","Depends on subcommand.","subcommands",["latency|graph",["summary","Return a latency graph for the event.","since","2.8.13","group","server","complexity","O(1)","arguments",[["name","event","type","string"]]],"latency|latest",["summary","Return the latest latency samples for all events.","since","2.8.13","group","server","complexity","O(1)"],"latency|doctor",["summary","Return a human readable latency analysis report.","since","2.8.13","group","server","complexity","O(1)"],"latency|reset",["summary","Reset latency data for one or more events.","since","2.8.13","group","server","complexity","O(1)","arguments",[["name","event","type","string","flags",["optional","multiple"]]]],"latency|help",["summary","Show helpful text about the different subcommands.","since","2.8.13","group","server","complexity","O(1)"],"latency|histogram",["summary","Return the cumulative distribution of latencies of a subset of commands or all.","since","7.0.0","group","server","complexity","O(N) where N is the number of commands with latency information being retrieved.","arguments",[["name","command","type","string","flags",["optional","multiple"]]]],"latency|history",["summary","Return timestamp-latency samples for the event.","since","2.8.13","group","server","complexity","O(1)","arguments",[["name","event","type","string"]]]]],"xdel",["summary","Removes the specified entries from the stream. Returns the number of items actually deleted, that may be different from the number of IDs passed in case certain IDs do not exist.","since","5.0.0","group","stream","complexity","O(1) for each single item to delete in the stream, regardless of the stream size.","arguments",[["name","key","type","key","key_spec_index",0],["name","id","type","string","flags",["multiple"]]]],"zrem",["summary","Remove one or more members from a sorted set","since","1.2.0","group","sorted-set","complexity","O(M*log(N)) with N being the number of elements in the sorted set and M the number of elements to be removed.","history",[["2.4.0","Accepts multiple elements."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"pfadd",["summary","Adds the specified elements to the specified HyperLogLog.","since","2.8.9","group","hyperloglog","complexity","O(1) to add every element.","arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["optional","multiple"]]]],"xadd",["summary","Appends a new entry to a stream","since","5.0.0","group","stream","complexity","O(1) when adding a new entry, O(N) when trimming where N being the number of entries evicted.","history",[["6.2.0","Added the `NOMKSTREAM` option, `MINID` trimming strategy and the `LIMIT` option."],["7.0.0","Added support for the `-*` explicit ID form."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","nomkstream","type","pure-token","token","NOMKSTREAM","since","6.2.0","flags",["optional"]],["name","trim","type","block","flags",["optional"],"arguments",[["name","strategy","type","oneof","arguments",[["name","maxlen","type","pure-token","token","MAXLEN"],["name","minid","type","pure-token","token","MINID","since","6.2.0"]]],["name","operator","type","oneof","flags",["optional"],"arguments",[["name","equal","type","pure-token","token","="],["name","approximately","type","pure-token","token","~"]]],["name","threshold","type","string"],["name","count","type","integer","token","LIMIT","since","6.2.0","flags",["optional"]]]],["name","id_or_auto","type","oneof","arguments",[["name","auto_id","type","pure-token","token","*"],["name","id","type","string"]]],["name","field_value","type","block","flags",["multiple"],"arguments",[["name","field","type","string"],["name","value","type","string"]]]]],"georadiusbymember_ro",["summary","A read-only variant for GEORADIUSBYMEMBER","since","3.2.10","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` with the `BYRADIUS` and `FROMMEMBER` arguments","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]]]],"zpopmin",["summary","Remove and return members with the lowest scores in a sorted set","since","5.0.0","group","sorted-set","complexity","O(log(N)*M) with N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","flags",["optional"]]]],"srem",["summary","Remove one or more members from a set","since","1.0.0","group","set","complexity","O(N) where N is the number of members to be removed.","history",[["2.4.0","Accepts multiple `member` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"blmove",["summary","Pop an element from a list, push it to another list and return it; or block until one is available","since","6.2.0","group","list","complexity","O(1)","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","wherefrom","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","whereto","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","timeout","type","double"]]],"pubsub",["summary","A container for Pub/Sub commands","since","2.8.0","group","pubsub","complexity","Depends on subcommand.","subcommands",["pubsub|numpat",["summary","Get the count of unique patterns pattern subscriptions","since","2.8.0","group","pubsub","complexity","O(1)"],"pubsub|channels",["summary","List active channels","since","2.8.0","group","pubsub","complexity","O(N) where N is the number of active channels, and assuming constant time pattern matching (relatively short channels and patterns)","arguments",[["name","pattern","type","pattern","flags",["optional"]]]],"pubsub|shardnumsub",["summary","Get the count of subscribers for shard channels","since","7.0.0","group","pubsub","complexity","O(N) for the SHARDNUMSUB subcommand, where N is the number of requested shard channels","arguments",[["name","shardchannel","type","string","flags",["optional","multiple"]]]],"pubsub|shardchannels",["summary","List active shard channels","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of active shard channels, and assuming constant time pattern matching (relatively short shard channels).","arguments",[["name","pattern","type","pattern","flags",["optional"]]]],"pubsub|help",["summary","Show helpful text about the different subcommands","since","6.2.0","group","pubsub","complexity","O(1)"],"pubsub|numsub",["summary","Get the count of subscribers for channels","since","2.8.0","group","pubsub","complexity","O(N) for the NUMSUB subcommand, where N is the number of requested channels","arguments",[["name","channel","type","string","flags",["optional","multiple"]]]]]],"xrevrange",["summary","Return a range of elements in a stream, with IDs matching the specified IDs interval, in reverse order (from greater to smaller IDs) compared to XRANGE","since","5.0.0","group","stream","complexity","O(N) with N being the number of elements returned. If N is constant (e.g. always asking for the first 10 elements with COUNT), you can consider it O(1).","history",[["6.2.0","Added exclusive ranges."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","end","type","string"],["name","start","type","string"],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"spublish",["summary","Post a message to a shard channel","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of clients subscribed to the receiving shard channel.","arguments",[["name","shardchannel","type","string"],["name","message","type","string"]]],"psetex",["summary","Set the value and expiration in milliseconds of a key","since","2.6.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","milliseconds","type","integer"],["name","value","type","string"]]],"xclaim",["summary","Changes (or acquires) ownership of a message in a consumer group, as if the message was delivered to the specified consumer.","since","5.0.0","group","stream","complexity","O(log N) with N being the number of messages in the PEL of the consumer group.","arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","consumer","type","string"],["name","min-idle-time","type","string"],["name","id","type","string","flags",["multiple"]],["name","ms","type","integer","token","IDLE","flags",["optional"]],["name","unix-time-milliseconds","type","unix-time","token","TIME","flags",["optional"]],["name","count","type","integer","token","RETRYCOUNT","flags",["optional"]],["name","force","type","pure-token","token","FORCE","flags",["optional"]],["name","justid","type","pure-token","token","JUSTID","flags",["optional"]],["name","id","type","string","token","LASTID","flags",["optional"]]]],"lastsave",["summary","Get the UNIX time stamp of the last successful save to disk","since","1.0.0","group","server","complexity","O(1)"],"hincrbyfloat",["summary","Increment the float value of a hash field by the given amount","since","2.6.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"],["name","increment","type","double"]]],"decrby",["summary","Decrement the integer value of a key by the given number","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","decrement","type","integer"]]],"getex",["summary","Get the value of a key and optionally set its expiration","since","6.2.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","expiration","type","oneof","flags",["optional"],"arguments",[["name","seconds","type","integer","token","EX"],["name","milliseconds","type","integer","token","PX"],["name","unix-time-seconds","type","unix-time","token","EXAT"],["name","unix-time-milliseconds","type","unix-time","token","PXAT"],["name","persist","type","pure-token","token","PERSIST"]]]]],"spop",["summary","Remove and return one or multiple random members from a set","since","1.0.0","group","set","complexity","Without the count argument O(1), otherwise O(N) where N is the value of the passed count.","history",[["3.2.0","Added the `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","3.2.0","flags",["optional"]]]],"fcall",["summary","Invoke a function","since","7.0.0","group","scripting","complexity","Depends on the function that is executed.","arguments",[["name","function","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"zremrangebyscore",["summary","Remove all members in a sorted set within the given scores","since","1.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","double"],["name","max","type","double"]]],"flushall",["summary","Remove all keys from all databases","since","1.0.0","group","server","complexity","O(N) where N is the total number of keys in all databases","history",[["4.0.0","Added the `ASYNC` flushing mode modifier."],["6.2.0","Added the `SYNC` flushing mode modifier."]],"arguments",[["name","async","type","oneof","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC","since","4.0.0"],["name","sync","type","pure-token","token","SYNC","since","6.2.0"]]]]],"psync",["summary","Internal command used for replication","since","2.8.0","group","server","arguments",[["name","replicationid","type","string"],["name","offset","type","integer"]]],"scan",["summary","Incrementally iterate the keys space","since","2.8.0","group","generic","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection.","history",[["6.0.0","Added the `TYPE` subcommand."]],"arguments",[["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]],["name","type","type","string","token","TYPE","since","6.0.0","flags",["optional"]]]],"psubscribe",["summary","Listen for messages published to channels matching the given patterns","since","2.0.0","group","pubsub","complexity","O(N) where N is the number of patterns the client is already subscribed to.","arguments",[["name","pattern","type","block","flags",["multiple"],"arguments",[["name","pattern","type","pattern"]]]]],"mget",["summary","Get the values of all the given keys","since","1.0.0","group","string","complexity","O(N) where N is the number of keys to retrieve.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"xread",["summary","Return never seen elements in multiple streams, with IDs greater than the ones reported by the caller for each stream. Can block.","since","5.0.0","group","stream","complexity","For each stream mentioned: O(N) with N being the number of elements being returned, it means that XREAD-ing with a fixed COUNT is O(1). Note that when the BLOCK option is used, XADD will pay O(M) time in order to serve the M clients blocked on the stream getting new data.","arguments",[["name","count","type","integer","token","COUNT","flags",["optional"]],["name","milliseconds","type","integer","token","BLOCK","flags",["optional"]],["name","streams","type","block","token","STREAMS","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","id","type","string","flags",["multiple"]]]]]],"hexists",["summary","Determine if a hash field exists","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"]]],"geosearch",["summary","Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle.","since","6.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements in the grid-aligned bounding box area around the shape provided as the filter and M is the number of items inside the shape","history",[["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","from","type","oneof","arguments",[["name","member","type","string","token","FROMMEMBER"],["name","longitude_latitude","type","block","token","FROMLONLAT","arguments",[["name","longitude","type","double"],["name","latitude","type","double"]]]]],["name","by","type","oneof","arguments",[["name","circle","type","block","arguments",[["name","radius","type","double","token","BYRADIUS"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]],["name","box","type","block","arguments",[["name","width","type","double","token","BYBOX"],["name","height","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]]]],"brpoplpush",["summary","Pop an element from a list, push it to another list and return it; or block until one is available","since","2.2.0","group","list","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`BLMOVE` with the `RIGHT` and `LEFT` arguments","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","timeout","type","double"]]],"monitor",["summary","Listen for all requests received by the server in real time","since","1.0.0","group","server"],"unlink",["summary","Delete a key asynchronously in another thread. Otherwise it is just as DEL, but non blocking.","since","4.0.0","group","generic","complexity","O(1) for each key removed regardless of its size. Then the command does O(N) work in a different thread in order to reclaim memory, where N is the number of allocations the deleted objects where composed of.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"zrevrangebyscore",["summary","Return a range of members in a sorted set, by score, with scores ordered from high to low","since","2.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `REV` and `BYSCORE` arguments","history",[["2.1.6","`min` and `max` can be exclusive."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","max","type","double"],["name","min","type","double"],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"ltrim",["summary","Trim a list to the specified range","since","1.0.0","group","list","complexity","O(N) where N is the number of elements to be removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"]]],"geodist",["summary","Returns the distance between two members of a geospatial index","since","3.2.0","group","geo","complexity","O(log(N))","arguments",[["name","key","type","key","key_spec_index",0],["name","member1","type","string"],["name","member2","type","string"],["name","unit","type","oneof","flags",["optional"],"arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]],"msetnx",["summary","Set multiple keys to multiple values, only if none of the keys exist","since","1.0.1","group","string","complexity","O(N) where N is the number of keys to set.","arguments",[["name","key_value","type","block","flags",["multiple"],"arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]]]],"sintercard",["summary","Intersect multiple sets and return the cardinality of the result","since","7.0.0","group","set","complexity","O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","limit","type","integer","token","LIMIT","flags",["optional"]]]],"persist",["summary","Remove the expiration from a key","since","2.2.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"setbit",["summary","Sets or clears the bit at offset in the string value stored at key","since","2.2.0","group","bitmap","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","offset","type","integer"],["name","value","type","integer"]]],"lrem",["summary","Remove elements from a list","since","1.0.0","group","list","complexity","O(N+M) where N is the length of the list and M is the number of elements removed.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer"],["name","element","type","string"]]],"lpos",["summary","Return the index of matching elements on a list","since","6.0.6","group","list","complexity","O(N) where N is the number of elements in the list, for the average case. When searching for elements near the head or the tail of the list, or when the MAXLEN option is provided, the command may run in constant time.","arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string"],["name","rank","type","integer","token","RANK","flags",["optional"]],["name","num-matches","type","integer","token","COUNT","flags",["optional"]],["name","len","type","integer","token","MAXLEN","flags",["optional"]]]],"role",["summary","Return the role of the instance in the context of replication","since","2.8.12","group","server","complexity","O(1)"],"xgroup",["summary","A container for consumer groups commands","since","5.0.0","group","stream","complexity","Depends on subcommand.","subcommands",["xgroup|create",["summary","Create a consumer group.","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the `entries_read` named argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","id","type","oneof","arguments",[["name","id","type","string"],["name","new_id","type","pure-token","token","$"]]],["name","mkstream","type","pure-token","token","MKSTREAM","flags",["optional"]],["name","entries_read","type","integer","token","ENTRIESREAD","flags",["optional"]]]],"xgroup|destroy",["summary","Destroy a consumer group.","since","5.0.0","group","stream","complexity","O(N) where N is the number of entries in the group's pending entries list (PEL).","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"]]],"xgroup|createconsumer",["summary","Create a consumer in a consumer group.","since","6.2.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","consumername","type","string"]]],"xgroup|delconsumer",["summary","Delete a consumer from a consumer group.","since","5.0.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","consumername","type","string"]]],"xgroup|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","stream","complexity","O(1)"],"xgroup|setid",["summary","Set a consumer group to an arbitrary last delivered ID value.","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the optional `entries_read` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"],["name","id","type","oneof","arguments",[["name","id","type","string"],["name","new_id","type","pure-token","token","$"]]],["name","entries_read","type","integer","token","ENTRIESREAD","flags",["optional"]]]]]],"ttl",["summary","Get the time to live for a key in seconds","since","1.0.0","group","generic","complexity","O(1)","history",[["2.8.0","Added the -2 reply."]],"arguments",[["name","key","type","key","key_spec_index",0]]],"bgrewriteaof",["summary","Asynchronously rewrite the append-only file","since","1.0.0","group","server","complexity","O(1)"],"evalsha",["summary","Execute a Lua script server side","since","2.6.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","sha1","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"zscore",["summary","Get the score associated with the given member in a sorted set","since","1.2.0","group","sorted-set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"georadiusbymember",["summary","Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a member","since","3.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` and `GEOSEARCHSTORE` with the `BYRADIUS` and `FROMMEMBER` arguments","history",[["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","key","type","key","key_spec_index",1,"token","STORE","flags",["optional"]],["name","key","type","key","key_spec_index",2,"token","STOREDIST","flags",["optional"]]]],"bgsave",["summary","Asynchronously save the dataset to disk","since","1.0.0","group","server","complexity","O(1)","history",[["3.2.2","Added the `SCHEDULE` option."]],"arguments",[["name","schedule","type","pure-token","token","SCHEDULE","since","3.2.2","flags",["optional"]]]],"publish",["summary","Post a message to a channel","since","2.0.0","group","pubsub","complexity","O(N+M) where N is the number of clients subscribed to the receiving channel and M is the total number of subscribed patterns (by any client).","arguments",[["name","channel","type","string"],["name","message","type","string"]]],"swapdb",["summary","Swaps two Redis databases","since","4.0.0","group","server","complexity","O(N) where N is the count of clients watching or blocking on keys from both databases.","arguments",[["name","index1","type","integer"],["name","index2","type","integer"]]],"incrbyfloat",["summary","Increment the float value of a key by the given amount","since","2.6.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","increment","type","double"]]],"set",["summary","Set the string value of a key","since","1.0.0","group","string","complexity","O(1)","history",[["2.6.12","Added the `EX`, `PX`, `NX` and `XX` options."],["6.0.0","Added the `KEEPTTL` option."],["6.2.0","Added the `GET`, `EXAT` and `PXAT` option."],["7.0.0","Allowed the `NX` and `GET` options to be used together."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"],["name","condition","type","oneof","since","2.6.12","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"]]],["name","get","type","pure-token","token","GET","since","6.2.0","flags",["optional"]],["name","expiration","type","oneof","flags",["optional"],"arguments",[["name","seconds","type","integer","token","EX","since","2.6.12"],["name","milliseconds","type","integer","token","PX","since","2.6.12"],["name","unix-time-seconds","type","unix-time","token","EXAT","since","6.2.0"],["name","unix-time-milliseconds","type","unix-time","token","PXAT","since","6.2.0"],["name","keepttl","type","pure-token","token","KEEPTTL","since","6.0.0"]]]]],"rpop",["summary","Remove and get the last elements in a list","since","1.0.0","group","list","complexity","O(N) where N is the number of elements returned","history",[["6.2.0","Added the `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","6.2.0","flags",["optional"]]]],"getdel",["summary","Get the value of a key and delete the key","since","6.2.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"expireat",["summary","Set the expiration for a key as a UNIX timestamp","since","1.2.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","unix-time-seconds","type","unix-time"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"sort_ro",["summary","Sort the elements in a list, set or sorted set. Read-only variant of SORT.","since","7.0.0","group","generic","complexity","O(N+M*log(M)) where N is the number of elements in the list or set to sort, and M the number of returned elements. When the elements are not sorted, complexity is O(N).","arguments",[["name","key","type","key","key_spec_index",0],["name","pattern","type","pattern","key_spec_index",1,"token","BY","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]],["name","pattern","type","pattern","key_spec_index",1,"token","GET","flags",["optional","multiple","multiple_token"]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","sorting","type","pure-token","token","ALPHA","flags",["optional"]]]],"restore",["summary","Create a key using the provided serialized value, previously obtained using DUMP.","since","2.6.0","group","generic","complexity","O(1) to create the new key and additional O(N*M) to reconstruct the serialized value, where N is the number of Redis objects composing the value and M their average size. For small string values the time complexity is thus O(1)+O(1*M) where M is small, so simply O(1). However for sorted set values the complexity is O(N*M*log(N)) because inserting values into sorted sets is O(log(N)).","history",[["3.0.0","Added the `REPLACE` modifier."],["5.0.0","Added the `ABSTTL` modifier."],["5.0.0","Added the `IDLETIME` and `FREQ` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","ttl","type","integer"],["name","serialized-value","type","string"],["name","replace","type","pure-token","token","REPLACE","since","3.0.0","flags",["optional"]],["name","absttl","type","pure-token","token","ABSTTL","since","5.0.0","flags",["optional"]],["name","seconds","type","integer","token","IDLETIME","since","5.0.0","flags",["optional"]],["name","frequency","type","integer","token","FREQ","since","5.0.0","flags",["optional"]]]],"lmpop",["summary","Pop elements from a list","since","7.0.0","group","list","complexity","O(N+M) where N is the number of provided keys and M is the number of elements returned.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"ssubscribe",["summary","Listen for messages published to the given shard channels","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of shard channels to subscribe to.","arguments",[["name","shardchannel","type","string","flags",["multiple"]]]],"multi",["summary","Mark the start of a transaction block","since","1.2.0","group","transactions","complexity","O(1)"],"bitcount",["summary","Count set bits in a string","since","2.6.0","group","bitmap","complexity","O(N)","history",[["7.0.0","Added the `BYTE|BIT` option."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","index","type","block","flags",["optional"],"arguments",[["name","start","type","integer"],["name","end","type","integer"],["name","index_unit","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","byte","type","pure-token","token","BYTE"],["name","bit","type","pure-token","token","BIT"]]]]]]],"reset",["summary","Reset the connection","since","6.2.0","group","connection","complexity","O(1)"],"lrange",["summary","Get a range of elements from a list","since","1.0.0","group","list","complexity","O(S+N) where S is the distance of start offset from HEAD for small lists, from nearest end (HEAD or TAIL) for large lists; and N is the number of elements in the specified range.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"]]],"zinter",["summary","Intersect multiple sorted sets","since","6.2.0","group","sorted-set","complexity","O(N*K)+O(M*log(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"append",["summary","Append a value to a key","since","2.0.0","group","string","complexity","O(1). The amortized time complexity is O(1) assuming the appended value is small and the already present value is of any size, since the dynamic string library used by Redis will double the free space available on every reallocation.","arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]],"decr",["summary","Decrement the integer value of a key by one","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"hsetnx",["summary","Set the value of a hash field, only if the field does not exist","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"],["name","value","type","string"]]],"lpush",["summary","Prepend one or multiple elements to a list","since","1.0.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["2.4.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"incrby",["summary","Increment the integer value of a key by the given amount","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","increment","type","integer"]]],"zintercard",["summary","Intersect multiple sorted sets and return the cardinality of the result","since","7.0.0","group","sorted-set","complexity","O(N*K) worst case with N being the smallest input sorted set, K being the number of input sorted sets.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","limit","type","integer","token","LIMIT","flags",["optional"]]]],"ping",["summary","Ping the server","since","1.0.0","group","connection","complexity","O(1)","arguments",[["name","message","type","string","flags",["optional"]]]],"randomkey",["summary","Return a random key from the keyspace","since","1.0.0","group","generic","complexity","O(1)"],"unsubscribe",["summary","Stop listening for messages posted to the given channels","since","2.0.0","group","pubsub","complexity","O(N) where N is the number of clients already subscribed to a channel.","arguments",[["name","channel","type","string","flags",["optional","multiple"]]]],"hstrlen",["summary","Get the length of the value of a hash field","since","3.2.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"]]],"blpop",["summary","Remove and get the first element in a list, or block until one is available","since","2.0.0","group","list","complexity","O(N) where N is the number of provided keys.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"zlexcount",["summary","Count the number of members in a sorted set between a given lexicographical range","since","2.8.9","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","string"],["name","max","type","string"]]],"zrange",["summary","Return a range of members in a sorted set","since","1.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements returned.","history",[["6.2.0","Added the `REV`, `BYSCORE`, `BYLEX` and `LIMIT` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","string"],["name","stop","type","string"],["name","sortby","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","byscore","type","pure-token","token","BYSCORE"],["name","bylex","type","pure-token","token","BYLEX"]]],["name","rev","type","pure-token","token","REV","since","6.2.0","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","since","6.2.0","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"replconf",["summary","An internal command for configuring the replication stream","since","3.0.0","group","server","complexity","O(1)","doc_flags",["syscmd"]],"geopos",["summary","Returns longitude and latitude of members of a geospatial index","since","3.2.0","group","geo","complexity","O(N) where N is the number of members requested.","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"sismember",["summary","Determine if a given value is a member of a set","since","1.0.0","group","set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"incr",["summary","Increment the integer value of a key by one","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"zunion",["summary","Add multiple sorted sets","since","6.2.0","group","sorted-set","complexity","O(N)+O(M*log(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"unwatch",["summary","Forget about all watched keys","since","2.2.0","group","transactions","complexity","O(1)"],"sscan",["summary","Incrementally iterate Set elements","since","2.8.0","group","set","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection..","arguments",[["name","key","type","key","key_spec_index",0],["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"zcount",["summary","Count the members in a sorted set with scores within the given values","since","2.0.0","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","double"],["name","max","type","double"]]],"quit",["summary","Close the connection","since","1.0.0","group","connection","complexity","O(1)"],"auth",["summary","Authenticate to the server","since","1.0.0","group","connection","complexity","O(N) where N is the number of passwords defined for the user","history",[["6.0.0","Added ACL style (username and password)."]],"arguments",[["name","username","type","string","since","6.0.0","flags",["optional"]],["name","password","type","string"]]],"zdiffstore",["summary","Subtract multiple sorted sets and store the resulting sorted set in a new key","since","6.2.0","group","sorted-set","complexity","O(L + (N-K)log(N)) worst case where L is the total number of elements in all the sets, N is the size of the first set, and K is the size of the result set.","arguments",[["name","destination","type","key","key_spec_index",0],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"sdiffstore",["summary","Subtract multiple sets and store the resulting set in a key","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","destination","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"zrevrange",["summary","Return a range of members in a sorted set, by index, with scores ordered from high to low","since","1.2.0","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements returned.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `REV` argument","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","stop","type","integer"],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"rename",["summary","Rename a key","since","1.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","newkey","type","key","key_spec_index",1]]],"brpop",["summary","Remove and get the last element in a list, or block until one is available","since","2.0.0","group","list","complexity","O(N) where N is the number of provided keys.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"subscribe",["summary","Listen for messages published to the given channels","since","2.0.0","group","pubsub","complexity","O(N) where N is the number of channels to subscribe to.","arguments",[["name","channel","type","string","flags",["multiple"]]]],"rpushx",["summary","Append an element to a list, only if the list exists","since","2.2.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["4.0.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"sdiff",["summary","Subtract multiple sets","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"geosearchstore",["summary","Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle, and store the result in another key.","since","6.2.0","group","geo","complexity","O(N+log(M)) where N is the number of elements in the grid-aligned bounding box area around the shape provided as the filter and M is the number of items inside the shape","history",[["7.0.0","Added support for uppercase unit names."]],"arguments",[["name","destination","type","key","key_spec_index",0],["name","source","type","key","key_spec_index",1],["name","from","type","oneof","arguments",[["name","member","type","string","token","FROMMEMBER"],["name","longitude_latitude","type","block","token","FROMLONLAT","arguments",[["name","longitude","type","double"],["name","latitude","type","double"]]]]],["name","by","type","oneof","arguments",[["name","circle","type","block","arguments",[["name","radius","type","double","token","BYRADIUS"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]],["name","box","type","block","arguments",[["name","width","type","double","token","BYBOX"],["name","height","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]]]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","flags",["optional"]]]],["name","storedist","type","pure-token","token","STOREDIST","flags",["optional"]]]],"exists",["summary","Determine if a key exists","since","1.0.0","group","generic","complexity","O(N) where N is the number of keys to check.","history",[["3.0.3","Accepts multiple `key` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"rpoplpush",["summary","Remove the last element in a list, prepend it to another list and return it","since","1.2.0","group","list","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`LMOVE` with the `RIGHT` and `LEFT` arguments","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1]]],"hmget",["summary","Get the values of all the given hash fields","since","2.0.0","group","hash","complexity","O(N) where N is the number of fields being requested.","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string","flags",["multiple"]]]],"bitpos",["summary","Find first bit set or clear in a string","since","2.8.7","group","bitmap","complexity","O(N)","history",[["7.0.0","Added the `BYTE|BIT` option."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","bit","type","integer"],["name","index","type","block","flags",["optional"],"arguments",[["name","start","type","integer"],["name","end_index","type","block","flags",["optional"],"arguments",[["name","end","type","integer"],["name","index_unit","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","byte","type","pure-token","token","BYTE"],["name","bit","type","pure-token","token","BIT"]]]]]]]]],"function",["summary","A container for function commands","since","7.0.0","group","scripting","complexity","Depends on subcommand.","subcommands",["function|dump",["summary","Dump all functions into a serialized binary payload","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions"],"function|help",["summary","Show helpful text about the different subcommands","since","7.0.0","group","scripting","complexity","O(1)"],"function|kill",["summary","Kill the function currently in execution.","since","7.0.0","group","scripting","complexity","O(1)"],"function|list",["summary","List information about all the functions","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions","arguments",[["name","library-name-pattern","type","string","token","LIBRARYNAME","flags",["optional"]],["name","withcode","type","pure-token","token","WITHCODE","flags",["optional"]]]],"function|restore",["summary","Restore all the functions on the given payload","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions on the payload","arguments",[["name","serialized-value","type","string"],["name","policy","type","oneof","flags",["optional"],"arguments",[["name","flush","type","pure-token","token","FLUSH"],["name","append","type","pure-token","token","APPEND"],["name","replace","type","pure-token","token","REPLACE"]]]]],"function|delete",["summary","Delete a function by name","since","7.0.0","group","scripting","complexity","O(1)","arguments",[["name","library-name","type","string"]]],"function|flush",["summary","Deleting all functions","since","7.0.0","group","scripting","complexity","O(N) where N is the number of functions deleted","arguments",[["name","async","type","oneof","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC"],["name","sync","type","pure-token","token","SYNC"]]]]],"function|load",["summary","Create a function with the given arguments (name, code, description)","since","7.0.0","group","scripting","complexity","O(1) (considering compilation time is redundant)","arguments",[["name","replace","type","pure-token","token","REPLACE","flags",["optional"]],["name","function-code","type","string"]]],"function|stats",["summary","Return information about the function currently running (name, description, duration)","since","7.0.0","group","scripting","complexity","O(1)"]]],"expiretime",["summary","Get the expiration Unix timestamp for a key","since","7.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"xautoclaim",["summary","Changes (or acquires) ownership of messages in a consumer group, as if the messages were delivered to the specified consumer.","since","6.2.0","group","stream","complexity","O(1) if COUNT is small.","history",[["7.0.0","Added an element to the reply array, containing deleted entries the command cleared from the PEL"]],"arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","consumer","type","string"],["name","min-idle-time","type","string"],["name","start","type","string"],["name","count","type","integer","token","COUNT","flags",["optional"]],["name","justid","type","pure-token","token","JUSTID","flags",["optional"]]]],"sadd",["summary","Add one or more members to a set","since","1.0.0","group","set","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["2.4.0","Accepts multiple `member` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"zremrangebylex",["summary","Remove all members in a sorted set between the given lexicographical range","since","2.8.9","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements removed by the operation.","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","string"],["name","max","type","string"]]],"hkeys",["summary","Get all the fields in a hash","since","2.0.0","group","hash","complexity","O(N) where N is the size of the hash.","arguments",[["name","key","type","key","key_spec_index",0]]],"asking",["summary","Sent by cluster clients after an -ASK redirect","since","3.0.0","group","cluster","complexity","O(1)"],"xtrim",["summary","Trims the stream to (approximately if '~' is passed) a certain size","since","5.0.0","group","stream","complexity","O(N), with N being the number of evicted entries. Constant times are very small however, since entries are organized in macro nodes containing multiple entries that can be released with a single deallocation.","history",[["6.2.0","Added the `MINID` trimming strategy and the `LIMIT` option."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","trim","type","block","arguments",[["name","strategy","type","oneof","arguments",[["name","maxlen","type","pure-token","token","MAXLEN"],["name","minid","type","pure-token","token","MINID","since","6.2.0"]]],["name","operator","type","oneof","flags",["optional"],"arguments",[["name","equal","type","pure-token","token","="],["name","approximately","type","pure-token","token","~"]]],["name","threshold","type","string"],["name","count","type","integer","token","LIMIT","since","6.2.0","flags",["optional"]]]]]],"hello",["summary","Handshake with Redis","since","6.0.0","group","connection","complexity","O(1)","history",[["6.2.0","`protover` made optional; when called without arguments the command reports the current connection's context."]],"arguments",[["name","arguments","type","block","flags",["optional"],"arguments",[["name","protover","type","integer"],["name","username_password","type","block","token","AUTH","flags",["optional"],"arguments",[["name","username","type","string"],["name","password","type","string"]]],["name","clientname","type","string","token","SETNAME","flags",["optional"]]]]]],"getrange",["summary","Get a substring of the string stored at a key","since","2.4.0","group","string","complexity","O(N) where N is the length of the returned string. The complexity is ultimately determined by the returned length, but because creating a substring from an existing string is very cheap, it can be considered O(1) for small strings.","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","end","type","integer"]]],"strlen",["summary","Get the length of the value stored in a key","since","2.2.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"zinterstore",["summary","Intersect multiple sorted sets and store the resulting sorted set in a new key","since","2.0.0","group","sorted-set","complexity","O(N*K)+O(M*log(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.","arguments",[["name","destination","type","key","key_spec_index",0],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",1,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]]]],"dump",["summary","Return a serialized version of the value stored at the specified key.","since","2.6.0","group","generic","complexity","O(1) to access the key and additional O(N*M) to serialize it, where N is the number of Redis objects composing the value and M their average size. For small string values the time complexity is thus O(1)+O(1*M) where M is small, so simply O(1).","arguments",[["name","key","type","key","key_spec_index",0]]],"watch",["summary","Watch the given keys to determine execution of the MULTI/EXEC block","since","2.2.0","group","transactions","complexity","O(1) for every key.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"setrange",["summary","Overwrite part of a string at key starting at the specified offset","since","2.2.0","group","string","complexity","O(1), not counting the time taken to copy the new string in place. Usually, this string is very small so the amortized complexity is O(1). Otherwise, complexity is O(M) with M being the length of the value argument.","arguments",[["name","key","type","key","key_spec_index",0],["name","offset","type","integer"],["name","value","type","string"]]],"save",["summary","Synchronously save the dataset to disk","since","1.0.0","group","server","complexity","O(N) where N is the total number of keys in all databases"],"georadius_ro",["summary","A read-only variant for GEORADIUS","since","3.2.10","group","geo","complexity","O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`GEOSEARCH` with the `BYRADIUS` argument","history",[["6.2.0","Added the `ANY` option for `COUNT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","longitude","type","double"],["name","latitude","type","double"],["name","radius","type","double"],["name","unit","type","oneof","arguments",[["name","m","type","pure-token","token","M"],["name","km","type","pure-token","token","KM"],["name","ft","type","pure-token","token","FT"],["name","mi","type","pure-token","token","MI"]]],["name","withcoord","type","pure-token","token","WITHCOORD","flags",["optional"]],["name","withdist","type","pure-token","token","WITHDIST","flags",["optional"]],["name","withhash","type","pure-token","token","WITHHASH","flags",["optional"]],["name","count","type","block","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT"],["name","any","type","pure-token","token","ANY","since","6.2.0","flags",["optional"]]]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]]]],"bzpopmin",["summary","Remove and return the member with the lowest score from one or more sorted sets, or block until one is available","since","5.0.0","group","sorted-set","complexity","O(log(N)) with N being the number of elements in the sorted set.","history",[["6.0.0","`timeout` is interpreted as a double instead of an integer."]],"arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","timeout","type","double"]]],"sunsubscribe",["summary","Stop listening for messages posted to the given shard channels","since","7.0.0","group","pubsub","complexity","O(N) where N is the number of clients already subscribed to a shard channel.","arguments",[["name","shardchannel","type","string","flags",["optional","multiple"]]]],"sunionstore",["summary","Add multiple sets and store the resulting set in a key","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","destination","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"xack",["summary","Marks a pending message as correctly processed, effectively removing it from the pending entries list of the consumer group. Return value of the command is the number of messages successfully acknowledged, that is, the IDs we were actually able to resolve in the PEL.","since","5.0.0","group","stream","complexity","O(1) for each message ID processed.","arguments",[["name","key","type","key","key_spec_index",0],["name","group","type","string"],["name","id","type","string","flags",["multiple"]]]],"srandmember",["summary","Get one or multiple random members from a set","since","1.0.0","group","set","complexity","Without the count argument O(1), otherwise O(N) where N is the absolute value of the passed count.","history",[["2.6.0","Added the optional `count` argument."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","since","2.6.0","flags",["optional"]]]],"config",["summary","A container for server configuration commands","since","2.0.0","group","server","complexity","Depends on subcommand.","subcommands",["config|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","server","complexity","O(1)"],"config|resetstat",["summary","Reset the stats returned by INFO","since","2.0.0","group","server","complexity","O(1)"],"config|get",["summary","Get the values of configuration parameters","since","2.0.0","group","server","complexity","O(N) when N is the number of configuration parameters provided","history",[["7.0.0","Added the ability to pass multiple pattern parameters in one call"]],"arguments",[["name","parameter","type","block","flags",["multiple"],"arguments",[["name","parameter","type","string"]]]]],"config|set",["summary","Set configuration parameters to the given values","since","2.0.0","group","server","complexity","O(N) when N is the number of configuration parameters provided","history",[["7.0.0","Added the ability to set multiple parameters in one call."]],"arguments",[["name","parameter_value","type","block","flags",["multiple"],"arguments",[["name","parameter","type","string"],["name","value","type","string"]]]]],"config|rewrite",["summary","Rewrite the configuration file with the in memory configuration","since","2.8.0","group","server","complexity","O(1)"]]],"setex",["summary","Set the value and expiration of a key","since","2.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","seconds","type","integer"],["name","value","type","string"]]],"getbit",["summary","Returns the bit value at offset in the string value stored at key","since","2.2.0","group","bitmap","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","offset","type","integer"]]],"scard",["summary","Get the number of members in a set","since","1.0.0","group","set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"smove",["summary","Move a member from one set to another","since","1.0.0","group","set","complexity","O(1)","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","member","type","string"]]],"zmscore",["summary","Get the score associated with the given members in a sorted set","since","6.2.0","group","sorted-set","complexity","O(N) where N is the number of members being requested.","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"zrank",["summary","Determine the index of a member in a sorted set","since","2.0.0","group","sorted-set","complexity","O(log(N))","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"type",["summary","Determine the type stored at key","since","1.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"blmpop",["summary","Pop elements from a list, or block until one is available","since","7.0.0","group","list","complexity","O(N+M) where N is the number of provided keys and M is the number of elements returned.","arguments",[["name","timeout","type","double"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"info",["summary","Get information and statistics about the server","since","1.0.0","group","server","complexity","O(1)","history",[["7.0.0","Added support for taking multiple section arguments."]],"arguments",[["name","section","type","string","flags",["optional","multiple"]]]],"sinterstore",["summary","Intersect multiple sets and store the resulting set in a key","since","1.0.0","group","set","complexity","O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.","arguments",[["name","destination","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"xrange",["summary","Return a range of elements in a stream, with IDs matching the specified IDs interval","since","5.0.0","group","stream","complexity","O(N) with N being the number of elements being returned. If N is constant (e.g. always asking for the first 10 elements with COUNT), you can consider it O(1).","history",[["6.2.0","Added exclusive ranges."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","string"],["name","end","type","string"],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"wait",["summary","Wait for the synchronous replication of all the write commands sent in the context of the current connection","since","3.0.0","group","generic","complexity","O(1)","arguments",[["name","numreplicas","type","integer"],["name","timeout","type","integer"]]],"zmpop",["summary","Remove and return members with scores in a sorted set","since","7.0.0","group","sorted-set","complexity","O(K) + O(M*log(N)) where K is the number of provided keys, N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"sync",["summary","Internal command used for replication","since","1.0.0","group","server"],"zdiff",["summary","Subtract multiple sorted sets","since","6.2.0","group","sorted-set","complexity","O(L + (N-K)log(N)) worst case where L is the total number of elements in all the sets, N is the size of the first set, and K is the size of the result set.","arguments",[["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]],"exec",["summary","Execute all commands issued after MULTI","since","1.2.0","group","transactions","complexity","Depends on commands in the transaction"],"bitop",["summary","Perform bitwise operations between strings","since","2.6.0","group","bitmap","complexity","O(N)","arguments",[["name","operation","type","string"],["name","destkey","type","key","key_spec_index",0],["name","key","type","key","key_spec_index",1,"flags",["multiple"]]]],"acl",["summary","A container for Access List Control commands ","since","6.0.0","group","server","complexity","Depends on subcommand.","subcommands",["acl|load",["summary","Reload the ACLs from the configured ACL file","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."],"acl|getuser",["summary","Get the rules for a specific ACL user","since","6.0.0","group","server","complexity","O(N). Where N is the number of password, command and pattern rules that the user has.","history",[["6.2.0","Added Pub/Sub channel patterns."],["7.0.0","Added selectors and changed the format of key and channel patterns from a list to their rule representation."]],"arguments",[["name","username","type","string"]]],"acl|cat",["summary","List the ACL categories or the commands inside a category","since","6.0.0","group","server","complexity","O(1) since the categories and commands are a fixed set.","arguments",[["name","categoryname","type","string","flags",["optional"]]]],"acl|help",["summary","Show helpful text about the different subcommands","since","6.0.0","group","server","complexity","O(1)"],"acl|list",["summary","List the current ACL rules in ACL config file format","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."],"acl|setuser",["summary","Modify or create the rules for a specific ACL user","since","6.0.0","group","server","complexity","O(N). Where N is the number of rules provided.","history",[["6.2.0","Added Pub/Sub channel patterns."],["7.0.0","Added selectors and key based permissions."]],"arguments",[["name","username","type","string"],["name","rule","type","string","flags",["optional","multiple"]]]],"acl|save",["summary","Save the current ACL rules in the configured ACL file","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."],"acl|dryrun",["summary","Returns whether the user can execute the given command without executing the command.","since","7.0.0","group","server","complexity","O(1).","arguments",[["name","username","type","string"],["name","command","type","string"],["name","arg","type","string","flags",["optional","multiple"]]]],"acl|log",["summary","List latest events denied because of ACLs in place","since","6.0.0","group","server","complexity","O(N) with N being the number of entries shown.","arguments",[["name","operation","type","oneof","flags",["optional"],"arguments",[["name","count","type","integer"],["name","reset","type","pure-token","token","RESET"]]]]],"acl|genpass",["summary","Generate a pseudorandom secure password to use for ACL users","since","6.0.0","group","server","complexity","O(1)","arguments",[["name","bits","type","integer","flags",["optional"]]]],"acl|deluser",["summary","Remove the specified ACL users and the associated rules","since","6.0.0","group","server","complexity","O(1) amortized time considering the typical user.","arguments",[["name","username","type","string","flags",["multiple"]]]],"acl|whoami",["summary","Return the name of the user associated to the current connection","since","6.0.0","group","server","complexity","O(1)"],"acl|users",["summary","List the username of all the configured ACL rules","since","6.0.0","group","server","complexity","O(N). Where N is the number of configured users."]]],"hmset",["summary","Set multiple hash fields to multiple values","since","2.0.0","group","hash","complexity","O(N) where N is the number of fields being set.","doc_flags",["deprecated"],"deprecated_since","4.0.0","replaced_by","`HSET` with multiple field-value pairs","arguments",[["name","key","type","key","key_spec_index",0],["name","field_value","type","block","flags",["multiple"],"arguments",[["name","field","type","string"],["name","value","type","string"]]]]],"hincrby",["summary","Increment the integer value of a hash field by the given number","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"],["name","increment","type","integer"]]],"script",["summary","A container for Lua scripts management commands","since","2.6.0","group","scripting","complexity","Depends on subcommand.","subcommands",["script|exists",["summary","Check existence of scripts in the script cache.","since","2.6.0","group","scripting","complexity","O(N) with N being the number of scripts to check (so checking a single script is an O(1) operation).","arguments",[["name","sha1","type","string","flags",["multiple"]]]],"script|debug",["summary","Set the debug mode for executed scripts.","since","3.2.0","group","scripting","complexity","O(1)","arguments",[["name","mode","type","oneof","arguments",[["name","yes","type","pure-token","token","YES"],["name","sync","type","pure-token","token","SYNC"],["name","no","type","pure-token","token","NO"]]]]],"script|flush",["summary","Remove all the scripts from the script cache.","since","2.6.0","group","scripting","complexity","O(N) with N being the number of scripts in cache","history",[["6.2.0","Added the `ASYNC` and `SYNC` flushing mode modifiers."]],"arguments",[["name","async","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC"],["name","sync","type","pure-token","token","SYNC"]]]]],"script|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","scripting","complexity","O(1)"],"script|kill",["summary","Kill the script currently in execution.","since","2.6.0","group","scripting","complexity","O(1)"],"script|load",["summary","Load the specified Lua script into the script cache.","since","2.6.0","group","scripting","complexity","O(N) with N being the length in bytes of the script body.","arguments",[["name","script","type","string"]]]]],"pttl",["summary","Get the time to live for a key in milliseconds","since","2.6.0","group","generic","complexity","O(1)","history",[["2.8.0","Added the -2 reply."]],"arguments",[["name","key","type","key","key_spec_index",0]]],"smismember",["summary","Returns the membership associated with the given elements for a set","since","6.2.0","group","set","complexity","O(N) where N is the number of elements being checked for membership","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"del",["summary","Delete a key","since","1.0.0","group","generic","complexity","O(N) where N is the number of keys that will be removed. When a key to remove holds a value other than a string, the individual complexity for this key is O(M) where M is the number of elements in the list, set, sorted set or hash. Removing a single key that holds a string value is O(1).","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"module",["summary","A container for module commands","since","4.0.0","group","server","complexity","Depends on subcommand.","subcommands",["module|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","server","complexity","O(1)"],"module|loadex",["summary","Load a module with extended parameters","since","7.0.0","group","server","complexity","O(1)","arguments",[["name","path","type","string"],["name","configs","type","block","token","CONFIG","flags",["optional","multiple","multiple_token"],"arguments",[["name","name","type","string"],["name","value","type","string"]]],["name","args","type","block","token","ARGS","flags",["optional","multiple"],"arguments",[["name","arg","type","string"]]]]],"module|list",["summary","List all modules loaded by the server","since","4.0.0","group","server","complexity","O(N) where N is the number of loaded modules."],"module|load",["summary","Load a module","since","4.0.0","group","server","complexity","O(1)","arguments",[["name","path","type","string"],["name","arg","type","string","flags",["optional","multiple"]]]],"module|unload",["summary","Unload a module","since","4.0.0","group","server","complexity","O(1)","arguments",[["name","name","type","string"]]]]],"hvals",["summary","Get all the values in a hash","since","2.0.0","group","hash","complexity","O(N) where N is the size of the hash.","arguments",[["name","key","type","key","key_spec_index",0]]],"move",["summary","Move a key to another database","since","1.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","db","type","integer"]]],"pexpiretime",["summary","Get the expiration Unix timestamp for a key in milliseconds","since","7.0.0","group","generic","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"llen",["summary","Get the length of a list","since","1.0.0","group","list","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"debug",["summary","A container for debugging commands","since","1.0.0","group","server","complexity","Depends on subcommand.","doc_flags",["syscmd"]],"sinter",["summary","Intersect multiple sets","since","1.0.0","group","set","complexity","O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"zrevrank",["summary","Determine the index of a member in a sorted set, with scores ordered from high to low","since","2.0.0","group","sorted-set","complexity","O(log(N))","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string"]]],"cluster",["summary","A container for cluster commands","since","3.0.0","group","cluster","complexity","Depends on subcommand.","subcommands",["cluster|setslot",["summary","Bind a hash slot to a specific node","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","slot","type","integer"],["name","subcommand","type","oneof","arguments",[["name","node-id","type","string","token","IMPORTING"],["name","node-id","type","string","token","MIGRATING"],["name","node-id","type","string","token","NODE"],["name","stable","type","pure-token","token","STABLE"]]]]],"cluster|failover",["summary","Forces a replica to perform a manual failover of its master.","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","options","type","oneof","flags",["optional"],"arguments",[["name","force","type","pure-token","token","FORCE"],["name","takeover","type","pure-token","token","TAKEOVER"]]]]],"cluster|keyslot",["summary","Returns the hash slot of the specified key","since","3.0.0","group","cluster","complexity","O(N) where N is the number of bytes in the key","arguments",[["name","key","type","string"]]],"cluster|slots",["summary","Get array of Cluster slot to node mappings","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of Cluster nodes","doc_flags",["deprecated"],"deprecated_since","7.0.0","replaced_by","`CLUSTER SHARDS`","history",[["4.0.0","Added node IDs."],["7.0.0","Added additional networking metadata field."]]],"cluster|getkeysinslot",["summary","Return local key names in the specified hash slot","since","3.0.0","group","cluster","complexity","O(log(N)) where N is the number of requested keys","arguments",[["name","slot","type","integer"],["name","count","type","integer"]]],"cluster|info",["summary","Provides info about Redis Cluster node state","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|shards",["summary","Get array of cluster slots to node mappings","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of cluster nodes"],"cluster|replicas",["summary","List replica nodes of the specified master node","since","5.0.0","group","cluster","complexity","O(1)","arguments",[["name","node-id","type","string"]]],"cluster|count-failure-reports",["summary","Return the number of failure reports active for a given node","since","3.0.0","group","cluster","complexity","O(N) where N is the number of failure reports","arguments",[["name","node-id","type","string"]]],"cluster|delslots",["summary","Set hash slots as unbound in receiving node","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of hash slot arguments","arguments",[["name","slot","type","integer","flags",["multiple"]]]],"cluster|nodes",["summary","Get Cluster config for the node","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of Cluster nodes"],"cluster|myid",["summary","Return the node id","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|bumpepoch",["summary","Advance the cluster config epoch","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|meet",["summary","Force a node cluster to handshake with another node","since","3.0.0","group","cluster","complexity","O(1)","history",[["4.0.0","Added the optional `cluster_bus_port` argument."]],"arguments",[["name","ip","type","string"],["name","port","type","integer"],["name","cluster_bus_port","type","integer","since","4.0.0","flags",["optional"]]]],"cluster|forget",["summary","Remove a node from the nodes table","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","node-id","type","string"]]],"cluster|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","cluster","complexity","O(1)"],"cluster|addslots",["summary","Assign new hash slots to receiving node","since","3.0.0","group","cluster","complexity","O(N) where N is the total number of hash slot arguments","arguments",[["name","slot","type","integer","flags",["multiple"]]]],"cluster|replicate",["summary","Reconfigure a node as a replica of the specified master node","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","node-id","type","string"]]],"cluster|set-config-epoch",["summary","Set the configuration epoch in a new node","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","config-epoch","type","integer"]]],"cluster|saveconfig",["summary","Forces the node to save cluster state on disk","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|delslotsrange",["summary","Set hash slots as unbound in receiving node","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of the slots between the start slot and end slot arguments.","arguments",[["name","start-slot_end-slot","type","block","flags",["multiple"],"arguments",[["name","start-slot","type","integer"],["name","end-slot","type","integer"]]]]],"cluster|addslotsrange",["summary","Assign new hash slots to receiving node","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of the slots between the start slot and end slot arguments.","arguments",[["name","start-slot_end-slot","type","block","flags",["multiple"],"arguments",[["name","start-slot","type","integer"],["name","end-slot","type","integer"]]]]],"cluster|flushslots",["summary","Delete a node's own slots information","since","3.0.0","group","cluster","complexity","O(1)"],"cluster|links",["summary","Returns a list of all TCP links to and from peer nodes in cluster","since","7.0.0","group","cluster","complexity","O(N) where N is the total number of Cluster nodes"],"cluster|reset",["summary","Reset a Redis Cluster node","since","3.0.0","group","cluster","complexity","O(N) where N is the number of known nodes. The command may execute a FLUSHALL as a side effect.","arguments",[["name","hard_soft","type","oneof","flags",["optional"],"arguments",[["name","hard","type","pure-token","token","HARD"],["name","soft","type","pure-token","token","SOFT"]]]]],"cluster|slaves",["summary","List replica nodes of the specified master node","since","3.0.0","group","cluster","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","5.0.0","replaced_by","`CLUSTER REPLICAS`","arguments",[["name","node-id","type","string"]]],"cluster|countkeysinslot",["summary","Return the number of local keys in the specified hash slot","since","3.0.0","group","cluster","complexity","O(1)","arguments",[["name","slot","type","integer"]]]]],"zpopmax",["summary","Remove and return members with the highest scores in a sorted set","since","5.0.0","group","sorted-set","complexity","O(log(N)*M) with N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","flags",["optional"]]]],"pfmerge",["summary","Merge N different HyperLogLogs into a single one.","since","2.8.9","group","hyperloglog","complexity","O(N) to merge N HyperLogLogs, but with high constant times.","arguments",[["name","destkey","type","key","key_spec_index",0],["name","sourcekey","type","key","key_spec_index",1,"flags",["multiple"]]]],"hset",["summary","Set the string value of a hash field","since","2.0.0","group","hash","complexity","O(1) for each field/value pair added, so O(N) to add N field/value pairs when the command is called with multiple field/value pairs.","history",[["4.0.0","Accepts multiple `field` and `value` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","field_value","type","block","flags",["multiple"],"arguments",[["name","field","type","string"],["name","value","type","string"]]]]],"pexpireat",["summary","Set the expiration for a key as a UNIX timestamp specified in milliseconds","since","2.6.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","unix-time-milliseconds","type","unix-time"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"pfdebug",["summary","Internal commands for debugging HyperLogLog values","since","2.8.9","group","hyperloglog","complexity","N/A","doc_flags",["syscmd"],"arguments",[["name","subcommand","type","string"],["name","key","type","key","key_spec_index",0]]],"readonly",["summary","Enables read queries for a connection to a cluster replica node","since","3.0.0","group","cluster","complexity","O(1)"],"lset",["summary","Set the value of an element in a list by its index","since","1.0.0","group","list","complexity","O(N) where N is the length of the list. Setting either the first or the last element of the list is O(1).","arguments",[["name","key","type","key","key_spec_index",0],["name","index","type","integer"],["name","element","type","string"]]],"flushdb",["summary","Remove all keys from the current database","since","1.0.0","group","server","complexity","O(N) where N is the number of keys in the selected database","history",[["4.0.0","Added the `ASYNC` flushing mode modifier."],["6.2.0","Added the `SYNC` flushing mode modifier."]],"arguments",[["name","async","type","oneof","flags",["optional"],"arguments",[["name","async","type","pure-token","token","ASYNC","since","4.0.0"],["name","sync","type","pure-token","token","SYNC","since","6.2.0"]]]]],"getset",["summary","Set the string value of a key and return its old value","since","1.0.0","group","string","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`SET` with the `!GET` argument","arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]],"bitfield_ro",["summary","Perform arbitrary bitfield integer operations on strings. Read-only variant of BITFIELD","since","6.0.0","group","bitmap","complexity","O(1) for each subcommand specified","arguments",[["name","key","type","key","key_spec_index",0],["name","encoding_offset","type","block","token","GET","flags",["optional","multiple","multiple_token"],"arguments",[["name","encoding","type","string"],["name","offset","type","integer"]]]]],"migrate",["summary","Atomically transfer a key from a Redis instance to another one.","since","2.6.0","group","generic","complexity","This command actually executes a DUMP+DEL in the source instance, and a RESTORE in the target instance. See the pages of these commands for time complexity. Also an O(N) data transfer between the two instances is performed.","history",[["3.0.0","Added the `COPY` and `REPLACE` options."],["3.0.6","Added the `KEYS` option."],["4.0.7","Added the `AUTH` option."],["6.0.0","Added the `AUTH2` option."]],"arguments",[["name","host","type","string"],["name","port","type","integer"],["name","key_or_empty_string","type","oneof","arguments",[["name","key","type","key","key_spec_index",0],["name","empty_string","type","pure-token","token",""]]],["name","destination-db","type","integer"],["name","timeout","type","integer"],["name","copy","type","pure-token","token","COPY","since","3.0.0","flags",["optional"]],["name","replace","type","pure-token","token","REPLACE","since","3.0.0","flags",["optional"]],["name","authentication","type","oneof","flags",["optional"],"arguments",[["name","password","type","string","token","AUTH","since","4.0.7","flags",["optional"]],["name","username_password","type","block","token","AUTH2","since","6.0.0","flags",["optional"],"arguments",[["name","username","type","string"],["name","password","type","string"]]]]],["name","key","type","key","key_spec_index",1,"token","KEYS","since","3.0.6","flags",["optional","multiple"]]]],"expire",["summary","Set a key's time to live in seconds","since","1.0.0","group","generic","complexity","O(1)","history",[["7.0.0","Added options: `NX`, `XX`, `GT` and `LT`."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","seconds","type","integer"],["name","condition","type","oneof","since","7.0.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"],["name","gt","type","pure-token","token","GT"],["name","lt","type","pure-token","token","LT"]]]]],"pfcount",["summary","Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s).","since","2.8.9","group","hyperloglog","complexity","O(1) with a very small average constant time when called with a single key. O(N) with N being the number of keys, and much bigger constant times, when called with multiple keys.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"zscan",["summary","Incrementally iterate sorted sets elements and associated scores","since","2.8.0","group","sorted-set","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection..","arguments",[["name","key","type","key","key_spec_index",0],["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"setnx",["summary","Set the value of a key, only if the key does not exist","since","1.0.0","group","string","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]],"evalsha_ro",["summary","Execute a read-only Lua script server side","since","7.0.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","sha1","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"pfselftest",["summary","An internal command for testing HyperLogLog values","since","2.8.9","group","hyperloglog","complexity","N/A","doc_flags",["syscmd"]],"geohash",["summary","Returns members of a geospatial index as standard geohash strings","since","3.2.0","group","geo","complexity","O(log(N)) for each member requested, where N is the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","member","type","string","flags",["multiple"]]]],"select",["summary","Change the selected database for the current connection","since","1.0.0","group","connection","complexity","O(1)","arguments",[["name","index","type","integer"]]],"lindex",["summary","Get an element from a list by its index","since","1.0.0","group","list","complexity","O(N) where N is the number of elements to traverse to get to the element at index. This makes asking for the first or the last element of the list O(1).","arguments",[["name","key","type","key","key_spec_index",0],["name","index","type","integer"]]],"xinfo",["summary","A container for stream introspection commands","since","5.0.0","group","stream","complexity","Depends on subcommand.","subcommands",["xinfo|stream",["summary","Get information about a stream","since","5.0.0","group","stream","complexity","O(1)","history",[["6.0.0","Added the `FULL` modifier."],["7.0.0","Added the `max-deleted-entry-id`, `entries-added`, `recorded-first-entry-id`, `entries-read` and `lag` fields"]],"arguments",[["name","key","type","key","key_spec_index",0],["name","full","type","block","token","FULL","flags",["optional"],"arguments",[["name","count","type","integer","token","COUNT","flags",["optional"]]]]]],"xinfo|help",["summary","Show helpful text about the different subcommands","since","5.0.0","group","stream","complexity","O(1)"],"xinfo|groups",["summary","List the consumer groups of a stream","since","5.0.0","group","stream","complexity","O(1)","history",[["7.0.0","Added the `entries-read` and `lag` fields"]],"arguments",[["name","key","type","key","key_spec_index",0]]],"xinfo|consumers",["summary","List the consumers in a consumer group","since","5.0.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","groupname","type","string"]]]]],"xreadgroup",["summary","Return new entries from a stream using a consumer group, or access the history of the pending entries for a given consumer. Can block.","since","5.0.0","group","stream","complexity","For each stream mentioned: O(M) with M being the number of elements returned. If M is constant (e.g. always asking for the first 10 elements with COUNT), you can consider it O(1). On the other side when XREADGROUP blocks, XADD will pay the O(N) time in order to serve the N clients blocked on the stream getting new data.","arguments",[["name","group_consumer","type","block","token","GROUP","arguments",[["name","group","type","string"],["name","consumer","type","string"]]],["name","count","type","integer","token","COUNT","flags",["optional"]],["name","milliseconds","type","integer","token","BLOCK","flags",["optional"]],["name","noack","type","pure-token","token","NOACK","flags",["optional"]],["name","streams","type","block","token","STREAMS","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","id","type","string","flags",["multiple"]]]]]],"zrevrangebylex",["summary","Return a range of members in a sorted set, by lexicographical range, ordered from higher to lower strings.","since","2.8.9","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `REV` and `BYLEX` arguments","arguments",[["name","key","type","key","key_spec_index",0],["name","max","type","string"],["name","min","type","string"],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"hget",["summary","Get the value of a hash field","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0],["name","field","type","string"]]],"mset",["summary","Set multiple keys to multiple values","since","1.0.1","group","string","complexity","O(N) where N is the number of keys to set.","arguments",[["name","key_value","type","block","flags",["multiple"],"arguments",[["name","key","type","key","key_spec_index",0],["name","value","type","string"]]]]],"bzmpop",["summary","Remove and return members with scores in a sorted set or block until one is available","since","7.0.0","group","sorted-set","complexity","O(K) + O(M*log(N)) where K is the number of provided keys, N being the number of elements in the sorted set, and M being the number of elements popped.","arguments",[["name","timeout","type","double"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["multiple"]],["name","where","type","oneof","arguments",[["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"sort",["summary","Sort the elements in a list, set or sorted set","since","1.0.0","group","generic","complexity","O(N+M*log(M)) where N is the number of elements in the list or set to sort, and M the number of returned elements. When the elements are not sorted, complexity is O(N).","arguments",[["name","key","type","key","key_spec_index",0],["name","pattern","type","pattern","key_spec_index",1,"token","BY","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]],["name","pattern","type","pattern","key_spec_index",1,"token","GET","flags",["optional","multiple","multiple_token"]],["name","order","type","oneof","flags",["optional"],"arguments",[["name","asc","type","pure-token","token","ASC"],["name","desc","type","pure-token","token","DESC"]]],["name","sorting","type","pure-token","token","ALPHA","flags",["optional"]],["name","destination","type","key","key_spec_index",2,"token","STORE","flags",["optional"]]]],"eval",["summary","Execute a Lua script server side","since","2.6.0","group","scripting","complexity","Depends on the script that is executed.","arguments",[["name","script","type","string"],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",0,"flags",["optional","multiple"]],["name","arg","type","string","flags",["optional","multiple"]]]],"zrangebylex",["summary","Return a range of members in a sorted set, by lexicographical range","since","2.8.9","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `BYLEX` argument","arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","string"],["name","max","type","string"],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"slaveof",["summary","Make the server a replica of another instance, or promote it as master.","since","1.0.0","group","server","complexity","O(1)","doc_flags",["deprecated"],"deprecated_since","5.0.0","replaced_by","`REPLICAOF`","arguments",[["name","host","type","string"],["name","port","type","integer"]]],"restore-asking",["summary","An internal command for migrating keys in a cluster","since","3.0.0","group","server","complexity","O(1) to create the new key and additional O(N*M) to reconstruct the serialized value, where N is the number of Redis objects composing the value and M their average size. For small string values the time complexity is thus O(1)+O(1*M) where M is small, so simply O(1). However for sorted set values the complexity is O(N*M*log(N)) because inserting values into sorted sets is O(log(N)).","doc_flags",["syscmd"],"history",[["3.0.0","Added the `REPLACE` modifier."],["5.0.0","Added the `ABSTTL` modifier."],["5.0.0","Added the `IDLETIME` and `FREQ` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","ttl","type","integer"],["name","serialized-value","type","string"],["name","replace","type","pure-token","token","REPLACE","since","3.0.0","flags",["optional"]],["name","absttl","type","pure-token","token","ABSTTL","since","5.0.0","flags",["optional"]],["name","seconds","type","integer","token","IDLETIME","since","5.0.0","flags",["optional"]],["name","frequency","type","integer","token","FREQ","since","5.0.0","flags",["optional"]]]],"zincrby",["summary","Increment the score of a member in a sorted set","since","1.2.0","group","sorted-set","complexity","O(log(N)) where N is the number of elements in the sorted set.","arguments",[["name","key","type","key","key_spec_index",0],["name","increment","type","integer"],["name","member","type","string"]]],"lmove",["summary","Pop an element from a list, push it to another list and return it","since","6.2.0","group","list","complexity","O(1)","arguments",[["name","source","type","key","key_spec_index",0],["name","destination","type","key","key_spec_index",1],["name","wherefrom","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]],["name","whereto","type","oneof","arguments",[["name","left","type","pure-token","token","LEFT"],["name","right","type","pure-token","token","RIGHT"]]]]],"readwrite",["summary","Disables read queries for a connection to a cluster replica node","since","3.0.0","group","cluster","complexity","O(1)"],"zcard",["summary","Get the number of members in a sorted set","since","1.2.0","group","sorted-set","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"zunionstore",["summary","Add multiple sorted sets and store the resulting sorted set in a new key","since","2.0.0","group","sorted-set","complexity","O(N)+O(M log(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.","arguments",[["name","destination","type","key","key_spec_index",0],["name","numkeys","type","integer"],["name","key","type","key","key_spec_index",1,"flags",["multiple"]],["name","weight","type","integer","token","WEIGHTS","flags",["optional","multiple"]],["name","aggregate","type","oneof","token","AGGREGATE","flags",["optional"],"arguments",[["name","sum","type","pure-token","token","SUM"],["name","min","type","pure-token","token","MIN"],["name","max","type","pure-token","token","MAX"]]]]],"lpushx",["summary","Prepend an element to a list, only if the list exists","since","2.2.0","group","list","complexity","O(1) for each element added, so O(N) to add N elements when the command is called with multiple arguments.","history",[["4.0.0","Accepts multiple `element` arguments."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","element","type","string","flags",["multiple"]]]],"sunion",["summary","Add multiple sets","since","1.0.0","group","set","complexity","O(N) where N is the total number of elements in all given sets.","arguments",[["name","key","type","key","key_spec_index",0,"flags",["multiple"]]]],"hscan",["summary","Incrementally iterate hash fields and associated values","since","2.8.0","group","hash","complexity","O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection..","arguments",[["name","key","type","key","key_spec_index",0],["name","cursor","type","integer"],["name","pattern","type","pattern","token","MATCH","flags",["optional"]],["name","count","type","integer","token","COUNT","flags",["optional"]]]],"bitfield",["summary","Perform arbitrary bitfield integer operations on strings","since","3.2.0","group","bitmap","complexity","O(1) for each subcommand specified","arguments",[["name","key","type","key","key_spec_index",0],["name","operation","type","oneof","flags",["optional","multiple"],"arguments",[["name","encoding_offset","type","block","token","GET","arguments",[["name","encoding","type","string"],["name","offset","type","integer"]]],["name","write","type","block","arguments",[["name","wrap_sat_fail","type","oneof","token","OVERFLOW","flags",["optional"],"arguments",[["name","wrap","type","pure-token","token","WRAP"],["name","sat","type","pure-token","token","SAT"],["name","fail","type","pure-token","token","FAIL"]]],["name","write_operation","type","oneof","arguments",[["name","encoding_offset_value","type","block","token","SET","arguments",[["name","encoding","type","string"],["name","offset","type","integer"],["name","value","type","integer"]]],["name","encoding_offset_increment","type","block","token","INCRBY","arguments",[["name","encoding","type","string"],["name","offset","type","integer"],["name","increment","type","integer"]]]]]]]]]]],"hgetall",["summary","Get all the fields and values in a hash","since","2.0.0","group","hash","complexity","O(N) where N is the size of the hash.","arguments",[["name","key","type","key","key_spec_index",0]]],"xlen",["summary","Return the number of entries in a stream","since","5.0.0","group","stream","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"hlen",["summary","Get the number of fields in a hash","since","2.0.0","group","hash","complexity","O(1)","arguments",[["name","key","type","key","key_spec_index",0]]],"zrandmember",["summary","Get one or multiple random elements from a sorted set","since","6.2.0","group","sorted-set","complexity","O(N) where N is the number of elements returned","arguments",[["name","key","type","key","key_spec_index",0],["name","options","type","block","flags",["optional"],"arguments",[["name","count","type","integer"],["name","withscores","type","pure-token","token","WITHSCORES","flags",["optional"]]]]]],"geoadd",["summary","Add one or more geospatial items in the geospatial index represented using a sorted set","since","3.2.0","group","geo","complexity","O(log(N)) for each item added, where N is the number of elements in the sorted set.","history",[["6.2.0","Added the `CH`, `NX` and `XX` options."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","condition","type","oneof","since","6.2.0","flags",["optional"],"arguments",[["name","nx","type","pure-token","token","NX"],["name","xx","type","pure-token","token","XX"]]],["name","change","type","pure-token","token","CH","since","6.2.0","flags",["optional"]],["name","longitude_latitude_member","type","block","flags",["multiple"],"arguments",[["name","longitude","type","double"],["name","latitude","type","double"],["name","member","type","string"]]]]],"substr",["summary","Get a substring of the string stored at a key","since","1.0.0","group","string","complexity","O(N) where N is the length of the returned string. The complexity is ultimately determined by the returned length, but because creating a substring from an existing string is very cheap, it can be considered O(1) for small strings.","doc_flags",["deprecated"],"deprecated_since","2.0.0","replaced_by","`GETRANGE`","arguments",[["name","key","type","key","key_spec_index",0],["name","start","type","integer"],["name","end","type","integer"]]],"punsubscribe",["summary","Stop listening for messages posted to channels matching the given patterns","since","2.0.0","group","pubsub","complexity","O(N+M) where N is the number of patterns the client is already subscribed and M is the number of total patterns subscribed in the system (by any client).","arguments",[["name","pattern","type","pattern","flags",["optional","multiple"]]]],"zrangebyscore",["summary","Return a range of members in a sorted set, by score","since","1.0.5","group","sorted-set","complexity","O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).","doc_flags",["deprecated"],"deprecated_since","6.2.0","replaced_by","`ZRANGE` with the `BYSCORE` argument","history",[["2.0.0","Added the `WITHSCORES` modifier."]],"arguments",[["name","key","type","key","key_spec_index",0],["name","min","type","double"],["name","max","type","double"],["name","withscores","type","pure-token","token","WITHSCORES","since","2.0.0","flags",["optional"]],["name","offset_count","type","block","token","LIMIT","flags",["optional"],"arguments",[["name","offset","type","integer"],["name","count","type","integer"]]]]],"smembers",["summary","Get all the members in a set","since","1.0.0","group","set","complexity","O(N) where N is the set cardinality.","arguments",[["name","key","type","key","key_spec_index",0]]],"slowlog",["summary","A container for slow log commands","since","2.2.12","group","server","complexity","Depends on subcommand.","subcommands",["slowlog|reset",["summary","Clear all entries from the slow log","since","2.2.12","group","server","complexity","O(N) where N is the number of entries in the slowlog"],"slowlog|help",["summary","Show helpful text about the different subcommands","since","6.2.0","group","server","complexity","O(1)"],"slowlog|len",["summary","Get the slow log's length","since","2.2.12","group","server","complexity","O(1)"],"slowlog|get",["summary","Get the slow log's entries","since","2.2.12","group","server","complexity","O(N) where N is the number of entries returned","history",[["4.0.0","Added client IP address, port and name to the reply."]],"arguments",[["name","count","type","integer","flags",["optional"]]]]]],"discard",["summary","Discard all commands issued after MULTI","since","2.0.0","group","transactions","complexity","O(N), when N is the number of queued commands"],"replicaof",["summary","Make the server a replica of another instance, or promote it as master.","since","5.0.0","group","server","complexity","O(1)","arguments",[["name","host","type","string"],["name","port","type","integer"]]],"linsert",["summary","Insert an element before or after another element in a list","since","2.2.0","group","list","complexity","O(N) where N is the number of elements to traverse before seeing the value pivot. This means that inserting somewhere on the left end on the list (head) can be considered O(1) and inserting somewhere on the right end (tail) is O(N).","arguments",[["name","key","type","key","key_spec_index",0],["name","where","type","oneof","arguments",[["name","before","type","pure-token","token","BEFORE"],["name","after","type","pure-token","token","AFTER"]]],["name","pivot","type","string"],["name","element","type","string"]]],"memory",["summary","A container for memory diagnostics commands","since","4.0.0","group","server","complexity","Depends on subcommand.","subcommands",["memory|doctor",["summary","Outputs memory problems report","since","4.0.0","group","server","complexity","O(1)"],"memory|purge",["summary","Ask the allocator to release memory","since","4.0.0","group","server","complexity","Depends on how much memory is allocated, could be slow"],"memory|malloc-stats",["summary","Show allocator internal stats","since","4.0.0","group","server","complexity","Depends on how much memory is allocated, could be slow"],"memory|usage",["summary","Estimate the memory usage of a key","since","4.0.0","group","server","complexity","O(N) where N is the number of samples.","arguments",[["name","key","type","key","key_spec_index",0],["name","count","type","integer","token","SAMPLES","flags",["optional"]]]],"memory|stats",["summary","Show memory usage details","since","4.0.0","group","server","complexity","O(1)"],"memory|help",["summary","Show helpful text about the different subcommands","since","4.0.0","group","server","complexity","O(1)"]]]] \ No newline at end of file diff --git a/data/info.json b/data/info.json index 2e1c2c69a..beb1ff50b 100644 --- a/data/info.json +++ b/data/info.json @@ -1 +1 @@ -"# Server\r\nredis_version:7.0.10\r\nredis_git_sha1:00000000\r\nredis_git_dirty:0\r\nredis_build_id:f03ae0273e39f2e3\r\nredis_mode:standalone\r\nos:Linux 5.15.0-1034-azure x86_64\r\narch_bits:64\r\nmonotonic_clock:POSIX clock_gettime\r\nmultiplexing_api:epoll\r\natomicvar_api:c11-builtin\r\ngcc_version:10.2.1\r\nprocess_id:1\r\nprocess_supervised:no\r\nrun_id:f3376b877332b738fbf3fa35a357aad5a560bed5\r\ntcp_port:6379\r\nserver_time_usec:1679518476581348\r\nuptime_in_seconds:63\r\nuptime_in_days:0\r\nhz:10\r\nconfigured_hz:10\r\nlru_clock:1796876\r\nexecutable:/tmp/redis-server\r\nconfig_file:\r\nio_threads_active:0\r\n\r\n# Clients\r\nconnected_clients:1\r\ncluster_connections:0\r\nmaxclients:10000\r\nclient_recent_max_input_buffer:20480\r\nclient_recent_max_output_buffer:0\r\nblocked_clients:0\r\ntracking_clients:0\r\nclients_in_timeout_table:0\r\n\r\n# Memory\r\nused_memory:3399672\r\nused_memory_human:3.24M\r\nused_memory_rss:14741504\r\nused_memory_rss_human:14.06M\r\nused_memory_peak:3530144\r\nused_memory_peak_human:3.37M\r\nused_memory_peak_perc:96.30%\r\nused_memory_overhead:863168\r\nused_memory_startup:862048\r\nused_memory_dataset:2536504\r\nused_memory_dataset_perc:99.96%\r\nallocator_allocated:3590472\r\nallocator_active:4362240\r\nallocator_resident:6955008\r\ntotal_system_memory:7281278976\r\ntotal_system_memory_human:6.78G\r\nused_memory_lua:39936\r\nused_memory_vm_eval:39936\r\nused_memory_lua_human:39.00K\r\nused_memory_scripts_eval:936\r\nnumber_of_cached_scripts:4\r\nnumber_of_functions:0\r\nnumber_of_libraries:0\r\nused_memory_vm_functions:32768\r\nused_memory_vm_total:72704\r\nused_memory_vm_total_human:71.00K\r\nused_memory_functions:184\r\nused_memory_scripts:1120\r\nused_memory_scripts_human:1.09K\r\nmaxmemory:0\r\nmaxmemory_human:0B\r\nmaxmemory_policy:noeviction\r\nallocator_frag_ratio:1.21\r\nallocator_frag_bytes:771768\r\nallocator_rss_ratio:1.59\r\nallocator_rss_bytes:2592768\r\nrss_overhead_ratio:2.12\r\nrss_overhead_bytes:7786496\r\nmem_fragmentation_ratio:4.39\r\nmem_fragmentation_bytes:11381704\r\nmem_not_counted_for_evict:0\r\nmem_replication_backlog:0\r\nmem_total_replication_buffers:0\r\nmem_clients_slaves:0\r\nmem_clients_normal:0\r\nmem_cluster_links:0\r\nmem_aof_buffer:0\r\nmem_allocator:jemalloc-5.2.1\r\nactive_defrag_running:0\r\nlazyfree_pending_objects:0\r\nlazyfreed_objects:0\r\n\r\n# Persistence\r\nloading:0\r\nasync_loading:0\r\ncurrent_cow_peak:0\r\ncurrent_cow_size:0\r\ncurrent_cow_size_age:0\r\ncurrent_fork_perc:0.00\r\ncurrent_save_keys_processed:0\r\ncurrent_save_keys_total:0\r\nrdb_changes_since_last_save:0\r\nrdb_bgsave_in_progress:0\r\nrdb_last_save_time:1679518476\r\nrdb_last_bgsave_status:ok\r\nrdb_last_bgsave_time_sec:0\r\nrdb_current_bgsave_time_sec:-1\r\nrdb_saves:3\r\nrdb_last_cow_size:286720\r\nrdb_last_load_keys_expired:0\r\nrdb_last_load_keys_loaded:0\r\naof_enabled:0\r\naof_rewrite_in_progress:0\r\naof_rewrite_scheduled:0\r\naof_last_rewrite_time_sec:0\r\naof_current_rewrite_time_sec:-1\r\naof_last_bgrewrite_status:ok\r\naof_rewrites:1\r\naof_rewrites_consecutive_failures:0\r\naof_last_write_status:ok\r\naof_last_cow_size:212992\r\nmodule_fork_in_progress:0\r\nmodule_fork_last_cow_size:0\r\n\r\n# Stats\r\ntotal_connections_received:800\r\ntotal_commands_processed:2367\r\ninstantaneous_ops_per_sec:63\r\ntotal_net_input_bytes:60777\r\ntotal_net_output_bytes:4033522\r\ntotal_net_repl_input_bytes:0\r\ntotal_net_repl_output_bytes:0\r\ninstantaneous_input_kbps:1.21\r\ninstantaneous_output_kbps:134.29\r\ninstantaneous_input_repl_kbps:0.00\r\ninstantaneous_output_repl_kbps:0.00\r\nrejected_connections:0\r\nsync_full:0\r\nsync_partial_ok:0\r\nsync_partial_err:0\r\nexpired_keys:16\r\nexpired_stale_perc:1.82\r\nexpired_time_cap_reached_count:0\r\nexpire_cycle_cpu_milliseconds:0\r\nevicted_keys:0\r\nevicted_clients:0\r\ntotal_eviction_exceeded_time:0\r\ncurrent_eviction_exceeded_time:0\r\nkeyspace_hits:325\r\nkeyspace_misses:102\r\npubsub_channels:0\r\npubsub_patterns:0\r\npubsubshard_channels:0\r\nlatest_fork_usec:230\r\ntotal_forks:2\r\nmigrate_cached_sockets:0\r\nslave_expires_tracked_keys:0\r\nactive_defrag_hits:0\r\nactive_defrag_misses:0\r\nactive_defrag_key_hits:0\r\nactive_defrag_key_misses:0\r\ntotal_active_defrag_time:0\r\ncurrent_active_defrag_time:0\r\ntracking_total_keys:0\r\ntracking_total_items:0\r\ntracking_total_prefixes:0\r\nunexpected_error_replies:0\r\ntotal_error_replies:66\r\ndump_payload_sanitizations:0\r\ntotal_reads_processed:3168\r\ntotal_writes_processed:2373\r\nio_threaded_reads_processed:0\r\nio_threaded_writes_processed:0\r\nreply_buffer_shrinks:24\r\nreply_buffer_expands:0\r\n\r\n# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:6640fcb3e02fb20344185a04862b640380705f03\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n\r\n# CPU\r\nused_cpu_sys:0.250358\r\nused_cpu_user:0.196469\r\nused_cpu_sys_children:0.000918\r\nused_cpu_user_children:0.004110\r\nused_cpu_sys_main_thread:0.249107\r\nused_cpu_user_main_thread:0.195822\r\n\r\n# Modules\r\n\r\n# Errorstats\r\nerrorstat_ERR:count=50\r\nerrorstat_NOSCRIPT:count=2\r\nerrorstat_WRONGTYPE:count=14\r\n\r\n# Cluster\r\ncluster_enabled:0\r\n\r\n# Keyspace\r\n" \ No newline at end of file +"# Server\r\nredis_version:7.0.11\r\nredis_git_sha1:00000000\r\nredis_git_dirty:0\r\nredis_build_id:5c712dc4cb9cfb70\r\nredis_mode:standalone\r\nos:Linux 5.15.0-1035-azure x86_64\r\narch_bits:64\r\nmonotonic_clock:POSIX clock_gettime\r\nmultiplexing_api:epoll\r\natomicvar_api:c11-builtin\r\ngcc_version:10.2.1\r\nprocess_id:1\r\nprocess_supervised:no\r\nrun_id:b5c1b7961d5b9d3b2ee3ca4bc48fee4704bbade4\r\ntcp_port:6379\r\nserver_time_usec:1681809421356745\r\nuptime_in_seconds:80\r\nuptime_in_days:0\r\nhz:10\r\nconfigured_hz:10\r\nlru_clock:4087821\r\nexecutable:/tmp/redis-server\r\nconfig_file:\r\nio_threads_active:0\r\n\r\n# Clients\r\nconnected_clients:1\r\ncluster_connections:0\r\nmaxclients:10000\r\nclient_recent_max_input_buffer:20480\r\nclient_recent_max_output_buffer:0\r\nblocked_clients:0\r\ntracking_clients:0\r\nclients_in_timeout_table:0\r\n\r\n# Memory\r\nused_memory:4116736\r\nused_memory_human:3.93M\r\nused_memory_rss:14630912\r\nused_memory_rss_human:13.95M\r\nused_memory_peak:4201808\r\nused_memory_peak_human:4.01M\r\nused_memory_peak_perc:97.98%\r\nused_memory_overhead:864568\r\nused_memory_startup:862208\r\nused_memory_dataset:3252168\r\nused_memory_dataset_perc:99.93%\r\nallocator_allocated:4259280\r\nallocator_active:5156864\r\nallocator_resident:7749632\r\ntotal_system_memory:7281270784\r\ntotal_system_memory_human:6.78G\r\nused_memory_lua:40960\r\nused_memory_vm_eval:40960\r\nused_memory_lua_human:40.00K\r\nused_memory_scripts_eval:2176\r\nnumber_of_cached_scripts:11\r\nnumber_of_functions:0\r\nnumber_of_libraries:0\r\nused_memory_vm_functions:32768\r\nused_memory_vm_total:73728\r\nused_memory_vm_total_human:72.00K\r\nused_memory_functions:184\r\nused_memory_scripts:2360\r\nused_memory_scripts_human:2.30K\r\nmaxmemory:0\r\nmaxmemory_human:0B\r\nmaxmemory_policy:noeviction\r\nallocator_frag_ratio:1.21\r\nallocator_frag_bytes:897584\r\nallocator_rss_ratio:1.50\r\nallocator_rss_bytes:2592768\r\nrss_overhead_ratio:1.89\r\nrss_overhead_bytes:6881280\r\nmem_fragmentation_ratio:3.59\r\nmem_fragmentation_bytes:10554048\r\nmem_not_counted_for_evict:0\r\nmem_replication_backlog:0\r\nmem_total_replication_buffers:0\r\nmem_clients_slaves:0\r\nmem_clients_normal:0\r\nmem_cluster_links:0\r\nmem_aof_buffer:0\r\nmem_allocator:jemalloc-5.2.1\r\nactive_defrag_running:0\r\nlazyfree_pending_objects:0\r\nlazyfreed_objects:0\r\n\r\n# Persistence\r\nloading:0\r\nasync_loading:0\r\ncurrent_cow_peak:0\r\ncurrent_cow_size:0\r\ncurrent_cow_size_age:0\r\ncurrent_fork_perc:0.00\r\ncurrent_save_keys_processed:0\r\ncurrent_save_keys_total:0\r\nrdb_changes_since_last_save:0\r\nrdb_bgsave_in_progress:0\r\nrdb_last_save_time:1681809421\r\nrdb_last_bgsave_status:ok\r\nrdb_last_bgsave_time_sec:0\r\nrdb_current_bgsave_time_sec:-1\r\nrdb_saves:3\r\nrdb_last_cow_size:233472\r\nrdb_last_load_keys_expired:0\r\nrdb_last_load_keys_loaded:0\r\naof_enabled:0\r\naof_rewrite_in_progress:0\r\naof_rewrite_scheduled:0\r\naof_last_rewrite_time_sec:0\r\naof_current_rewrite_time_sec:-1\r\naof_last_bgrewrite_status:ok\r\naof_rewrites:1\r\naof_rewrites_consecutive_failures:0\r\naof_last_write_status:ok\r\naof_last_cow_size:233472\r\nmodule_fork_in_progress:0\r\nmodule_fork_last_cow_size:0\r\n\r\n# Stats\r\ntotal_connections_received:955\r\ntotal_commands_processed:2834\r\ninstantaneous_ops_per_sec:52\r\ntotal_net_input_bytes:75599\r\ntotal_net_output_bytes:4810047\r\ntotal_net_repl_input_bytes:0\r\ntotal_net_repl_output_bytes:0\r\ninstantaneous_input_kbps:0.99\r\ninstantaneous_output_kbps:113.01\r\ninstantaneous_input_repl_kbps:0.00\r\ninstantaneous_output_repl_kbps:0.00\r\nrejected_connections:0\r\nsync_full:0\r\nsync_partial_ok:0\r\nsync_partial_err:0\r\nexpired_keys:16\r\nexpired_stale_perc:1.29\r\nexpired_time_cap_reached_count:0\r\nexpire_cycle_cpu_milliseconds:0\r\nevicted_keys:0\r\nevicted_clients:0\r\ntotal_eviction_exceeded_time:0\r\ncurrent_eviction_exceeded_time:0\r\nkeyspace_hits:381\r\nkeyspace_misses:147\r\npubsub_channels:0\r\npubsub_patterns:0\r\npubsubshard_channels:0\r\nlatest_fork_usec:272\r\ntotal_forks:2\r\nmigrate_cached_sockets:0\r\nslave_expires_tracked_keys:0\r\nactive_defrag_hits:0\r\nactive_defrag_misses:0\r\nactive_defrag_key_hits:0\r\nactive_defrag_key_misses:0\r\ntotal_active_defrag_time:0\r\ncurrent_active_defrag_time:0\r\ntracking_total_keys:0\r\ntracking_total_items:0\r\ntracking_total_prefixes:0\r\nunexpected_error_replies:0\r\ntotal_error_replies:87\r\ndump_payload_sanitizations:0\r\ntotal_reads_processed:3782\r\ntotal_writes_processed:2830\r\nio_threaded_reads_processed:0\r\nio_threaded_writes_processed:0\r\nreply_buffer_shrinks:23\r\nreply_buffer_expands:0\r\n\r\n# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:a688ea56f0a7771c1d5785e2ee1cb45482727c28\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n\r\n# CPU\r\nused_cpu_sys:0.374387\r\nused_cpu_user:0.247664\r\nused_cpu_sys_children:0.003293\r\nused_cpu_user_children:0.002316\r\nused_cpu_sys_main_thread:0.373148\r\nused_cpu_user_main_thread:0.246856\r\n\r\n# Modules\r\n\r\n# Errorstats\r\nerrorstat_ERR:count=66\r\nerrorstat_NOSCRIPT:count=2\r\nerrorstat_WRONGTYPE:count=19\r\n\r\n# Cluster\r\ncluster_enabled:0\r\n\r\n# Keyspace\r\n" \ No newline at end of file diff --git a/test/integration/commands/__snapshots__/info.js.snap b/test/integration/commands/__snapshots__/info.js.snap index 026f5a2af..ea2ab9752 100644 --- a/test/integration/commands/__snapshots__/info.js.snap +++ b/test/integration/commands/__snapshots__/info.js.snap @@ -1,22 +1,22 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`info should return default info with CRLF 1`] = `"redis_version:7.0.10"`; +exports[`info should return default info with CRLF 1`] = `"redis_version:7.0.11"`; exports[`info should return enough info to be useful 1`] = ` [ "# Server ", - "redis_version:7.0.10 + "redis_version:7.0.11 ", "redis_git_sha1:00000000 ", "redis_git_dirty:0 ", - "redis_build_id:f03ae0273e39f2e3 + "redis_build_id:5c712dc4cb9cfb70 ", "redis_mode:standalone ", - "os:Linux 5.15.0-1034-azure x86_64 + "os:Linux 5.15.0-1035-azure x86_64 ", "arch_bits:64 ", @@ -32,13 +32,13 @@ exports[`info should return enough info to be useful 1`] = ` ", "process_supervised:no ", - "run_id:f3376b877332b738fbf3fa35a357aad5a560bed5 + "run_id:b5c1b7961d5b9d3b2ee3ca4bc48fee4704bbade4 ", "tcp_port:6379 ", - "server_time_usec:1679518476581348 + "server_time_usec:1681809421356745 ", - "uptime_in_seconds:63 + "uptime_in_seconds:80 ", "uptime_in_days:0 ", @@ -46,7 +46,7 @@ exports[`info should return enough info to be useful 1`] = ` ", "configured_hz:10 ", - "lru_clock:1796876 + "lru_clock:4087821 ", "executable:/tmp/redis-server ", @@ -78,47 +78,47 @@ exports[`info should return enough info to be useful 1`] = ` ", "# Memory ", - "used_memory:3399672 + "used_memory:4116736 ", - "used_memory_human:3.24M + "used_memory_human:3.93M ", - "used_memory_rss:14741504 + "used_memory_rss:14630912 ", - "used_memory_rss_human:14.06M + "used_memory_rss_human:13.95M ", - "used_memory_peak:3530144 + "used_memory_peak:4201808 ", - "used_memory_peak_human:3.37M + "used_memory_peak_human:4.01M ", - "used_memory_peak_perc:96.30% + "used_memory_peak_perc:97.98% ", - "used_memory_overhead:863168 + "used_memory_overhead:864568 ", - "used_memory_startup:862048 + "used_memory_startup:862208 ", - "used_memory_dataset:2536504 + "used_memory_dataset:3252168 ", - "used_memory_dataset_perc:99.96% + "used_memory_dataset_perc:99.93% ", - "allocator_allocated:3590472 + "allocator_allocated:4259280 ", - "allocator_active:4362240 + "allocator_active:5156864 ", - "allocator_resident:6955008 + "allocator_resident:7749632 ", - "total_system_memory:7281278976 + "total_system_memory:7281270784 ", "total_system_memory_human:6.78G ", - "used_memory_lua:39936 + "used_memory_lua:40960 ", - "used_memory_vm_eval:39936 + "used_memory_vm_eval:40960 ", - "used_memory_lua_human:39.00K + "used_memory_lua_human:40.00K ", - "used_memory_scripts_eval:936 + "used_memory_scripts_eval:2176 ", - "number_of_cached_scripts:4 + "number_of_cached_scripts:11 ", "number_of_functions:0 ", @@ -126,15 +126,15 @@ exports[`info should return enough info to be useful 1`] = ` ", "used_memory_vm_functions:32768 ", - "used_memory_vm_total:72704 + "used_memory_vm_total:73728 ", - "used_memory_vm_total_human:71.00K + "used_memory_vm_total_human:72.00K ", "used_memory_functions:184 ", - "used_memory_scripts:1120 + "used_memory_scripts:2360 ", - "used_memory_scripts_human:1.09K + "used_memory_scripts_human:2.30K ", "maxmemory:0 ", @@ -144,19 +144,19 @@ exports[`info should return enough info to be useful 1`] = ` ", "allocator_frag_ratio:1.21 ", - "allocator_frag_bytes:771768 + "allocator_frag_bytes:897584 ", - "allocator_rss_ratio:1.59 + "allocator_rss_ratio:1.50 ", "allocator_rss_bytes:2592768 ", - "rss_overhead_ratio:2.12 + "rss_overhead_ratio:1.89 ", - "rss_overhead_bytes:7786496 + "rss_overhead_bytes:6881280 ", - "mem_fragmentation_ratio:4.39 + "mem_fragmentation_ratio:3.59 ", - "mem_fragmentation_bytes:11381704 + "mem_fragmentation_bytes:10554048 ", "mem_not_counted_for_evict:0 ", @@ -204,7 +204,7 @@ exports[`info should return enough info to be useful 1`] = ` ", "rdb_bgsave_in_progress:0 ", - "rdb_last_save_time:1679518476 + "rdb_last_save_time:1681809421 ", "rdb_last_bgsave_status:ok ", @@ -214,7 +214,7 @@ exports[`info should return enough info to be useful 1`] = ` ", "rdb_saves:3 ", - "rdb_last_cow_size:286720 + "rdb_last_cow_size:233472 ", "rdb_last_load_keys_expired:0 ", @@ -238,7 +238,7 @@ exports[`info should return enough info to be useful 1`] = ` ", "aof_last_write_status:ok ", - "aof_last_cow_size:212992 + "aof_last_cow_size:233472 ", "module_fork_in_progress:0 ", @@ -248,23 +248,23 @@ exports[`info should return enough info to be useful 1`] = ` ", "# Stats ", - "total_connections_received:800 + "total_connections_received:955 ", - "total_commands_processed:2367 + "total_commands_processed:2834 ", - "instantaneous_ops_per_sec:63 + "instantaneous_ops_per_sec:52 ", - "total_net_input_bytes:60777 + "total_net_input_bytes:75599 ", - "total_net_output_bytes:4033522 + "total_net_output_bytes:4810047 ", "total_net_repl_input_bytes:0 ", "total_net_repl_output_bytes:0 ", - "instantaneous_input_kbps:1.21 + "instantaneous_input_kbps:0.99 ", - "instantaneous_output_kbps:134.29 + "instantaneous_output_kbps:113.01 ", "instantaneous_input_repl_kbps:0.00 ", @@ -280,7 +280,7 @@ exports[`info should return enough info to be useful 1`] = ` ", "expired_keys:16 ", - "expired_stale_perc:1.82 + "expired_stale_perc:1.29 ", "expired_time_cap_reached_count:0 ", @@ -294,9 +294,9 @@ exports[`info should return enough info to be useful 1`] = ` ", "current_eviction_exceeded_time:0 ", - "keyspace_hits:325 + "keyspace_hits:381 ", - "keyspace_misses:102 + "keyspace_misses:147 ", "pubsub_channels:0 ", @@ -304,7 +304,7 @@ exports[`info should return enough info to be useful 1`] = ` ", "pubsubshard_channels:0 ", - "latest_fork_usec:230 + "latest_fork_usec:272 ", "total_forks:2 ", @@ -332,19 +332,19 @@ exports[`info should return enough info to be useful 1`] = ` ", "unexpected_error_replies:0 ", - "total_error_replies:66 + "total_error_replies:87 ", "dump_payload_sanitizations:0 ", - "total_reads_processed:3168 + "total_reads_processed:3782 ", - "total_writes_processed:2373 + "total_writes_processed:2830 ", "io_threaded_reads_processed:0 ", "io_threaded_writes_processed:0 ", - "reply_buffer_shrinks:24 + "reply_buffer_shrinks:23 ", "reply_buffer_expands:0 ", @@ -358,7 +358,7 @@ exports[`info should return enough info to be useful 1`] = ` ", "master_failover_state:no-failover ", - "master_replid:6640fcb3e02fb20344185a04862b640380705f03 + "master_replid:a688ea56f0a7771c1d5785e2ee1cb45482727c28 ", "master_replid2:0000000000000000000000000000000000000000 ", @@ -378,17 +378,17 @@ exports[`info should return enough info to be useful 1`] = ` ", "# CPU ", - "used_cpu_sys:0.250358 + "used_cpu_sys:0.374387 ", - "used_cpu_user:0.196469 + "used_cpu_user:0.247664 ", - "used_cpu_sys_children:0.000918 + "used_cpu_sys_children:0.003293 ", - "used_cpu_user_children:0.004110 + "used_cpu_user_children:0.002316 ", - "used_cpu_sys_main_thread:0.249107 + "used_cpu_sys_main_thread:0.373148 ", - "used_cpu_user_main_thread:0.195822 + "used_cpu_user_main_thread:0.246856 ", " ", @@ -398,11 +398,11 @@ exports[`info should return enough info to be useful 1`] = ` ", "# Errorstats ", - "errorstat_ERR:count=50 + "errorstat_ERR:count=66 ", "errorstat_NOSCRIPT:count=2 ", - "errorstat_WRONGTYPE:count=14 + "errorstat_WRONGTYPE:count=19 ", " ", @@ -419,27 +419,27 @@ exports[`info should return enough info to be useful 1`] = ` `; exports[`info should return the Redis version number used during end-to-end testing 1`] = ` -"redis_version:7.0.10 +"redis_version:7.0.11 " `; -exports[`infoBuffer should return default info with CRLF 1`] = `"redis_version:7.0.10"`; +exports[`infoBuffer should return default info with CRLF 1`] = `"redis_version:7.0.11"`; exports[`infoBuffer should return enough info to be useful 1`] = ` [ "# Server ", - "redis_version:7.0.10 + "redis_version:7.0.11 ", "redis_git_sha1:00000000 ", "redis_git_dirty:0 ", - "redis_build_id:f03ae0273e39f2e3 + "redis_build_id:5c712dc4cb9cfb70 ", "redis_mode:standalone ", - "os:Linux 5.15.0-1034-azure x86_64 + "os:Linux 5.15.0-1035-azure x86_64 ", "arch_bits:64 ", @@ -455,13 +455,13 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "process_supervised:no ", - "run_id:f3376b877332b738fbf3fa35a357aad5a560bed5 + "run_id:b5c1b7961d5b9d3b2ee3ca4bc48fee4704bbade4 ", "tcp_port:6379 ", - "server_time_usec:1679518476581348 + "server_time_usec:1681809421356745 ", - "uptime_in_seconds:63 + "uptime_in_seconds:80 ", "uptime_in_days:0 ", @@ -469,7 +469,7 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "configured_hz:10 ", - "lru_clock:1796876 + "lru_clock:4087821 ", "executable:/tmp/redis-server ", @@ -501,47 +501,47 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "# Memory ", - "used_memory:3399672 + "used_memory:4116736 ", - "used_memory_human:3.24M + "used_memory_human:3.93M ", - "used_memory_rss:14741504 + "used_memory_rss:14630912 ", - "used_memory_rss_human:14.06M + "used_memory_rss_human:13.95M ", - "used_memory_peak:3530144 + "used_memory_peak:4201808 ", - "used_memory_peak_human:3.37M + "used_memory_peak_human:4.01M ", - "used_memory_peak_perc:96.30% + "used_memory_peak_perc:97.98% ", - "used_memory_overhead:863168 + "used_memory_overhead:864568 ", - "used_memory_startup:862048 + "used_memory_startup:862208 ", - "used_memory_dataset:2536504 + "used_memory_dataset:3252168 ", - "used_memory_dataset_perc:99.96% + "used_memory_dataset_perc:99.93% ", - "allocator_allocated:3590472 + "allocator_allocated:4259280 ", - "allocator_active:4362240 + "allocator_active:5156864 ", - "allocator_resident:6955008 + "allocator_resident:7749632 ", - "total_system_memory:7281278976 + "total_system_memory:7281270784 ", "total_system_memory_human:6.78G ", - "used_memory_lua:39936 + "used_memory_lua:40960 ", - "used_memory_vm_eval:39936 + "used_memory_vm_eval:40960 ", - "used_memory_lua_human:39.00K + "used_memory_lua_human:40.00K ", - "used_memory_scripts_eval:936 + "used_memory_scripts_eval:2176 ", - "number_of_cached_scripts:4 + "number_of_cached_scripts:11 ", "number_of_functions:0 ", @@ -549,15 +549,15 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "used_memory_vm_functions:32768 ", - "used_memory_vm_total:72704 + "used_memory_vm_total:73728 ", - "used_memory_vm_total_human:71.00K + "used_memory_vm_total_human:72.00K ", "used_memory_functions:184 ", - "used_memory_scripts:1120 + "used_memory_scripts:2360 ", - "used_memory_scripts_human:1.09K + "used_memory_scripts_human:2.30K ", "maxmemory:0 ", @@ -567,19 +567,19 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "allocator_frag_ratio:1.21 ", - "allocator_frag_bytes:771768 + "allocator_frag_bytes:897584 ", - "allocator_rss_ratio:1.59 + "allocator_rss_ratio:1.50 ", "allocator_rss_bytes:2592768 ", - "rss_overhead_ratio:2.12 + "rss_overhead_ratio:1.89 ", - "rss_overhead_bytes:7786496 + "rss_overhead_bytes:6881280 ", - "mem_fragmentation_ratio:4.39 + "mem_fragmentation_ratio:3.59 ", - "mem_fragmentation_bytes:11381704 + "mem_fragmentation_bytes:10554048 ", "mem_not_counted_for_evict:0 ", @@ -627,7 +627,7 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "rdb_bgsave_in_progress:0 ", - "rdb_last_save_time:1679518476 + "rdb_last_save_time:1681809421 ", "rdb_last_bgsave_status:ok ", @@ -637,7 +637,7 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "rdb_saves:3 ", - "rdb_last_cow_size:286720 + "rdb_last_cow_size:233472 ", "rdb_last_load_keys_expired:0 ", @@ -661,7 +661,7 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "aof_last_write_status:ok ", - "aof_last_cow_size:212992 + "aof_last_cow_size:233472 ", "module_fork_in_progress:0 ", @@ -671,23 +671,23 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "# Stats ", - "total_connections_received:800 + "total_connections_received:955 ", - "total_commands_processed:2367 + "total_commands_processed:2834 ", - "instantaneous_ops_per_sec:63 + "instantaneous_ops_per_sec:52 ", - "total_net_input_bytes:60777 + "total_net_input_bytes:75599 ", - "total_net_output_bytes:4033522 + "total_net_output_bytes:4810047 ", "total_net_repl_input_bytes:0 ", "total_net_repl_output_bytes:0 ", - "instantaneous_input_kbps:1.21 + "instantaneous_input_kbps:0.99 ", - "instantaneous_output_kbps:134.29 + "instantaneous_output_kbps:113.01 ", "instantaneous_input_repl_kbps:0.00 ", @@ -703,7 +703,7 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "expired_keys:16 ", - "expired_stale_perc:1.82 + "expired_stale_perc:1.29 ", "expired_time_cap_reached_count:0 ", @@ -717,9 +717,9 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "current_eviction_exceeded_time:0 ", - "keyspace_hits:325 + "keyspace_hits:381 ", - "keyspace_misses:102 + "keyspace_misses:147 ", "pubsub_channels:0 ", @@ -727,7 +727,7 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "pubsubshard_channels:0 ", - "latest_fork_usec:230 + "latest_fork_usec:272 ", "total_forks:2 ", @@ -755,19 +755,19 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "unexpected_error_replies:0 ", - "total_error_replies:66 + "total_error_replies:87 ", "dump_payload_sanitizations:0 ", - "total_reads_processed:3168 + "total_reads_processed:3782 ", - "total_writes_processed:2373 + "total_writes_processed:2830 ", "io_threaded_reads_processed:0 ", "io_threaded_writes_processed:0 ", - "reply_buffer_shrinks:24 + "reply_buffer_shrinks:23 ", "reply_buffer_expands:0 ", @@ -781,7 +781,7 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "master_failover_state:no-failover ", - "master_replid:6640fcb3e02fb20344185a04862b640380705f03 + "master_replid:a688ea56f0a7771c1d5785e2ee1cb45482727c28 ", "master_replid2:0000000000000000000000000000000000000000 ", @@ -801,17 +801,17 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "# CPU ", - "used_cpu_sys:0.250358 + "used_cpu_sys:0.374387 ", - "used_cpu_user:0.196469 + "used_cpu_user:0.247664 ", - "used_cpu_sys_children:0.000918 + "used_cpu_sys_children:0.003293 ", - "used_cpu_user_children:0.004110 + "used_cpu_user_children:0.002316 ", - "used_cpu_sys_main_thread:0.249107 + "used_cpu_sys_main_thread:0.373148 ", - "used_cpu_user_main_thread:0.195822 + "used_cpu_user_main_thread:0.246856 ", " ", @@ -821,11 +821,11 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` ", "# Errorstats ", - "errorstat_ERR:count=50 + "errorstat_ERR:count=66 ", "errorstat_NOSCRIPT:count=2 ", - "errorstat_WRONGTYPE:count=14 + "errorstat_WRONGTYPE:count=19 ", " ", @@ -842,6 +842,6 @@ exports[`infoBuffer should return enough info to be useful 1`] = ` `; exports[`infoBuffer should return the Redis version number used during end-to-end testing 1`] = ` -"redis_version:7.0.10 +"redis_version:7.0.11 " `; diff --git a/test/integration/commands/__snapshots__/lolwut.js.snap b/test/integration/commands/__snapshots__/lolwut.js.snap index f78bf47c3..049eecbf4 100644 --- a/test/integration/commands/__snapshots__/lolwut.js.snap +++ b/test/integration/commands/__snapshots__/lolwut.js.snap @@ -1,8 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`lolwut should return Redis version by default 1`] = ` -"Redis ver. 7.0.10 +"Redis ver. 7.0.11 " `; -exports[`lolwutBuffer should return Redis version by default 1`] = `Buffer<52 65 64 69 73 20 76 65 72 2e 20 37 2e 30 2e 31 30 0a>`; +exports[`lolwutBuffer should return Redis version by default 1`] = `Buffer<52 65 64 69 73 20 76 65 72 2e 20 37 2e 30 2e 31 31 0a>`;