New from O’Reilly: The memory architecture behind adaptive AI agents

Read the report
For developersRedis Commands Cheat sheet
Prasan Kumar
Prasan Kumar
Will Johnston
Will Johnston

Connect

CLI

RedisInsight

Download RedisInsight to visually explore your Redis data or to engage with raw Redis commands in the workbench.

Image

node-redis

redis-py

NRedisStack

Jedis

NOTE

To setup Redis either locally or in the cloud, refer to the tutorial

Strings/Numbers

CLI

CommandSyntaxExampleOutputDescription
SETSET key valueSET myKey "Hello""OK"Set key to hold the string value. If key already holds a value, it is overwritten, regardless of its type. Time Complexity: O(1)
GETGET keyGET myKey"Hello"Get the string value of key. If the key does not exist the special value nil is returned. Time Complexity: O(1)
MGETMGET key [key ...]MGET myKey nonExistentKey1) "Hello" 2) (nil)Returns the values of all specified keys. For every key that does not hold a string value or does not exist, the special value nil is returned. Time Complexity: O(N)
INCRINCR keyINCR myCounter(integer) 1Increments the number stored at key by one. If the key does not exist, it is set to 0 before performing the operation. Time Complexity: O(1)

node-redis

redis-py

NRedisStack

Jedis

Generic

CLI

CommandSyntaxExampleOutputDescription
KEYSKEYS patternKEYS my*1) "myKey" 2) "myCounter"Returns all keys matching pattern. Time Complexity: O(N)
EXISTSEXISTS key [key ...]EXISTS myKey(integer) 1Checks if one or more keys exist. Time Complexity: O(N)
EXPIREEXPIRE key secondsEXPIRE myKey 120(integer) 1Set a timeout on a key. After the timeout has expired, the key will automatically be deleted. Time Complexity: O(1)
TTLTTL keyTTL myKey(integer) 113Returns the remaining time to live of a key that has a timeout. Time Complexity: O(1)
PERSISTPERSIST keyPERSIST myKey(integer) 1Removes the expiration from a key. Time Complexity: O(1)
SCANSCAN cursor [MATCH pattern] [COUNT count]SCAN 0 MATCH my* COUNT 21) "3" 2) 1) "myCounter" 2) "myKey"Iterates the set of keys in the currently selected Redis database. Time Complexity: O(1) for every call. O(N) for a complete iteration.
DELDEL key [key ...]DEL myKey(integer) 1Removes the specified keys. Time Complexity: O(N)
INFOINFO [section]INFO keyspace# Keyspace db0:keys=2,expires=0,avg_ttl=0Returns information and statistics about the server, with the different sections like - server, clients, memory, persistence, stats, replication, cpu, commandstats, latencystats, sentinel, cluster, modules, keyspace, errorstats. Time Complexity: O(1)

node-redis

redis-py

NRedisStack

Jedis

Hashes

CLI

CommandSyntaxExampleOutputDescription
HSETHSET key field value [field value ...]HSET h_employee_profile:101 name "Nicol" age 33(integer) 2Sets the specified fields to their respective values in the hash stored at key. Time Complexity: O(N)
HGETHGET key fieldHGET h_employee_profile:101 name"Nicol"Returns the value associated with field in the hash stored at key. Time Complexity: O(1)
HGETALLHGETALL keyHGETALL h_employee_profile:1011) "name" 2) "Nicol" 3) "age" 4) "33"Returns all fields and values of the hash stored at key. Time Complexity: O(N)
HMGETHMGET key field1 [field2]HMGET h_employee_profile:101 name age1) "Nicol" 2) "33"Returns the values associated with the specified fields in the hash stored at key. Time Complexity: O(N)

node-redis

redis-py

NRedisStack

Jedis

Sets

CLI

CommandSyntaxExampleOutputDescription
SADDSADD key member [member ...]SADD mySet "Hello"(integer) 1Adds the specified members to the set stored at key. Time Complexity: O(N)
SMEMBERSSMEMBERS keySMEMBERS mySet1) "Hello"Returns all the members of the set value stored at key. Time Complexity: O(N)
SCARDSCARD keySCARD mySet(integer) 1Returns the set cardinality (number of elements) of the set stored at key. Time Complexity: O(1)
SISMEMBERSISMEMBER key memberSISMEMBER mySet "Hello"(integer) 1Returns if member is a member of the set stored at key. Time Complexity: O(1)
SDIFFSDIFF key1 [key2]SDIFF mySet myOtherSet1) "Hello"Returns the members of the set resulting from the difference between the first set and all the successive sets. Time Complexity: O(N)
SDIFFSTORESDIFFSTORE destination key1 [key2]SDIFFSTORE myNewSet mySet myOtherSet(integer) 1This command is equal to SDIFF, but instead of returning the resulting set, it is stored in destination. Time Complexity: O(N)
SREMSREM key member [member ...]SREM mySet "Hello"(integer) 1Removes the specified members from the set stored at key.

node-redis

redis-py

NRedisStack

Jedis

Sorted sets

CLI

CommandSyntaxExampleOutputDescription
ZADDZADD key score member [score member ...]ZADD myZSet 1 "one" 2 "two"(integer) 2Adds all the specified members with the specified scores to the sorted set stored at key. Time Complexity: O(log(N))
ZRANGEZRANGE key start stop [WITHSCORES]ZRANGE myZSet 0 -11) "one" 2) "two"Returns the specified range of elements in the sorted set stored at key. Time Complexity: O(log(N)+M) where M is the number of elements returned

node-redis

redis-py

NRedisStack

Jedis

Lists

CLI

CommandSyntaxExampleOutputDescription
LPUSHLPUSH key value [value ...]LPUSH myList "World"(integer) 1Inserts the specified values at the head of the list stored at key. Time Complexity: O(N)
RPUSHRPUSH key value [value ...]RPUSH myList "Hello"(integer) 2Inserts the specified values at the tail of the list stored at key. Time Complexity: O(N)
LRANGELRANGE key start stopLRANGE myList 0 -11) "World" 2) "Hello"Returns the specified elements of the list stored at key. Time Complexity: O(S+N) where S is the distance of start and N is the number of elements in the specified range.
LLENLLEN keyLLEN myList(integer) 2Returns the length of the list stored at key. Time Complexity: O(1)
LPOPLPOP key [count]LPOP myList"World"Removes and returns the first element of the list stored at key. Time Complexity: O(N)
RPOPRPOP key [count]RPOP myList"Hello"Removes and returns the last element of the list stored at key. Time Complexity: O(N)

node-redis

redis-py

NRedisStack

Jedis

Streams

CLI

CommandSyntaxExampleOutputDescription
XADDXADD key field value [field value ...]XADD myStream * sensorId "1234" temperature "19.8"1518951480106-0Appends the specified stream entry to the stream at the specified key. Time Complexity: O(1) when adding a new entry.
XREADXREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]XREAD COUNT 2 STREAMS myStream 01) 1) "myStream" 2) 1) 1) "1518951480106-0" 2) 1) "sensorId" 2) "1234" 3) "temperature" 4) "19.8"Read data from one or multiple streams, only returning entries with an ID greater than the last received ID reported by the caller.
XRANGEXRANGE key start end [COUNT count]XRANGE myStream 1518951480106-0 1518951480106-01) 1) "1518951480106-0" 2) 1) "sensorId" 2) "1234" 3) "temperature" 4) "19.8"Returns the entries matching a range of IDs in a stream. Time 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).
XLENXLEN keyXLEN myStream(integer) 1Returns the number of entries of a stream. Time Complexity: O(1)
XDELXDEL key ID [ID ...]XDEL myStream 1518951480106-0(integer) 1Removes the specified entries from a stream. Time Complexity: O(1) for each single item to delete in the stream
XTRIMXTRIM key MAXLEN [~] countXTRIM myStream MAXLEN 0(integer) 0Trims the stream to a different length. Time 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.

node-redis

redis-py

NRedisStack

Jedis

JSON

CLI

CommandSyntaxExampleOutputDescription
JSON.SETJSON.SET key path valueJSON.SET employee_profile:1 . '{"name":"Alice"}'OKSets JSON value at path in key. Time Complexity: O(M+N) where M is the original size and N is the new size
JSON.GETJSON.GET key [path [path ...]]JSON.GET employee_profile:1{"name":"Alice"}Returns the JSON value at path in key. Time Complexity: O(N) when path is evaluated to a single value where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key
JSON.NUMINCRBYJSON.NUMINCRBY key path numberJSON.NUMINCRBY employee_profile:1 .age 535Increments a number inside a JSON document. Time Complexity: O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
JSON.OBJKEYSJSON.OBJKEYS key [path]JSON.OBJKEYS employee_profile:11) "name" 2) "age"Return the keys in the object that's referenced by path. Time Complexity: O(N) when path is evaluated to a single value, where N is the number of keys in the object, O(N) when path is evaluated to multiple values, where N is the size of the key
JSON.OBJLENJSON.OBJLEN key [path]JSON.OBJLEN employee_profile:1(integer) 2Report the number of keys in the JSON object at path in key. Time Complexity: O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
JSON.ARRAPPENDJSON.ARRAPPEND key [path] value [value ...]JSON.ARRAPPEND employee_profile:1 .colors '"yellow"'(integer) 4Append the json values into the array at path after the last element in it. Time Complexity: O(1) for each value added, O(N) for multiple values added where N is the size of the key
JSON.ARRINSERTJSON.ARRINSERT key path index value [value ...]JSON.ARRINSERT employee_profile:1 .colors 2 '"purple"'(integer) 5Insert the json values into the array at path before the index (shifts to the right). Time Complexity: O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key
JSON.ARRINDEXJSON.ARRINDEX key path value [start [stop]]JSON.ARRINDEX employee_profile:1 .colors '"purple"'(integer) 2Searches for the first occurrence of a JSON value in an array. Time Complexity: O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key

node-redis

redis-py

NRedisStack

Jedis

Search and Query

CLI

CommandSyntaxExampleOutputDescription
FT.CREATEFT.CREATE index [ON HASH / JSON] [PREFIX count prefix [prefix ...]] SCHEMA field_name [AS alias] TEXT / TAG / NUMERIC / GEO ...FT.CREATE staff:index ON JSON PREFIX 1 staff: SCHEMA "$.name" AS name TEXT "$.age" AS age NUMERICOKCreate an index with the given specification. Time Complexity: O(K) where K is the number of fields in the document, O(N) for keys in the keySpace
FT.SEARCHFT.SEARCH index query [RETURN count identifier ...] [SORTBY sortby] [LIMIT offset num]FT.SEARCH staff:index "(@name:'alex')" RETURN 1 $ LIMIT 0 10Matching documents dataSearch the index with a query, returning either documents or just ids. Time Complexity: O(N)
FT.AGGREGATEFT.AGGREGATE index query [GROUPBY nargs property ...] [REDUCE function nargs arg ...] [SORTBY nargs ...]FT.AGGREGATE staff:index "(@age:[(18 +inf])" GROUPBY 1 @age REDUCE COUNT_DISTINCT 1 @name AS staff_countAggregated results by ageRun a search query on an index, and perform aggregate transformations on the results.
FT.INFOFT.INFO indexFT.INFO staff:indexIndex configuration and statsReturn information and statistics on the index. Time Complexity: O(1)
FT.DROPINDEXFT.DROPINDEX index [DD]FT.DROPINDEX staff:indexOKDropping existing index. Time Complexity: O(1) or O(N) if documents are deleted, where N is the number of keys in the keyspace

node-redis

redis-py

NRedisStack

Jedis