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

Read the report
For developersRedis Commands Cheat sheet
Prasan Rajpurohit
Prasan Rajpurohit
William Johnston
William 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