DEV Community

Cover image for Do DevOps Need to Know Databases? Absolutely! MongoDB, PostgreSQL, MySQL, and Redis πŸš€

Do DevOps Need to Know Databases? Absolutely! MongoDB, PostgreSQL, MySQL, and Redis πŸš€

【 πŸ‘¨πŸ»β€πŸ’» YouTube | πŸ•΅οΈ LinkedIn】
Watch more other contents related DevOps - AWS

πŸ“œ Table of Contents

  1. MongoDB
  2. Postgres
  3. MySQL
  4. Redis

πŸ“Œ MongoDB

MongoDB Cheat Sheet & Quick Reference

MongoDB

The MongoDB cheat sheet provides you with the most commonly used MongoDB commands and queries for your reference. the cheatsheet is from mongodb developers website

Getting Started

Connect MongoDB Shell

mongo # connects to mongodb://127.0.0.1:27017 by default

Enter fullscreen mode Exit fullscreen mode
mongo --host <host> --port <port> -u <user> -p <pwd> # omit the password if you want a prompt

Enter fullscreen mode Exit fullscreen mode
mongo "mongodb://192.168.1.1:27017"

Enter fullscreen mode Exit fullscreen mode
mongo "mongodb+srv://cluster-name.abcde.mongodb.net/<dbname>" --username <username> # MongoDB Atlas

Enter fullscreen mode Exit fullscreen mode

Helpers

show dbs :

db // prints the current database

Enter fullscreen mode Exit fullscreen mode

Switch database :

use <database_name>

Enter fullscreen mode Exit fullscreen mode

Show collections :

show collections

Enter fullscreen mode Exit fullscreen mode

Run JavaScript file :

load("myScript.js")

Enter fullscreen mode Exit fullscreen mode

Crud

Create

db.coll.insertOne({name: "Max"})
db.coll.insert([{name: "Max"}, {name:"Alex"}]) // ordered bulk insert
db.coll.insert([{name: "Max"}, {name:"Alex"}], {ordered: false}) // unordered bulk insert
db.coll.insert({date: ISODate()})
db.coll.insert({name: "Max"}, {"writeConcern": {"w": "majority", "wtimeout": 5000}})

Enter fullscreen mode Exit fullscreen mode

Delete

db.coll.remove({name: "Max"})
db.coll.remove({name: "Max"}, {justOne: true})
db.coll.remove({}) // WARNING! Deletes all the docs but not the collection itself and its index definitions
db.coll.remove({name: "Max"}, {"writeConcern": {"w": "majority", "wtimeout": 5000}})
db.coll.findOneAndDelete({"name": "Max"})

Enter fullscreen mode Exit fullscreen mode

Update

db.coll.update({"_id": 1}, {"year": 2016}) // WARNING! Replaces the entire document
db.coll.update({"_id": 1}, {$set: {"year": 2016, name: "Max"}})
db.coll.update({"_id": 1}, {$unset: {"year": 1}})
db.coll.update({"_id": 1}, {$rename: {"year": "date"} })
db.coll.update({"_id": 1}, {$inc: {"year": 5}})
db.coll.update({"_id": 1}, {$mul: {price: NumberDecimal("1.25"), qty: 2}})
db.coll.update({"_id": 1}, {$min: {"imdb": 5}})
db.coll.update({"_id": 1}, {$max: {"imdb": 8}})
db.coll.update({"_id": 1}, {$currentDate: {"lastModified": true}})
db.coll.update({"_id": 1}, {$currentDate: {"lastModified": {$type: "timestamp"}}})

Enter fullscreen mode Exit fullscreen mode

Array

db.coll.update({"_id": 1}, {$push :{"array": 1}})
db.coll.update({"_id": 1}, {$pull :{"array": 1}})
db.coll.update({"_id": 1}, {$addToSet :{"array": 2}})
db.coll.update({"_id": 1}, {$pop: {"array": 1}})  // last element
db.coll.update({"_id": 1}, {$pop: {"array": -1}}) // first element
db.coll.update({"_id": 1}, {$pullAll: {"array" :[3, 4, 5]}})
db.coll.update({"_id": 1}, {$push: {scores: {$each: [90, 92, 85]}}})
db.coll.updateOne({"_id": 1, "grades": 80}, {$set: {"grades.$": 82}})
db.coll.updateMany({}, {$inc: {"grades.$[]": 10}})
db.coll.update({}, {$set: {"grades.$[element]": 100}}, {multi: true, arrayFilters: [{"element": {$gte: 100}}]})

Enter fullscreen mode Exit fullscreen mode

Update many

db.coll.update({"year": 1999}, {$set: {"decade": "90's"}}, {"multi":true})
db.coll.updateMany({"year": 1999}, {$set: {"decade": "90's"}})

Enter fullscreen mode Exit fullscreen mode

FindOneAndUpdate

db.coll.findOneAndUpdate({"name": "Max"}, {$inc: {"points": 5}}, {returnNewDocument: true})

Enter fullscreen mode Exit fullscreen mode

Upsert

db.coll.update({"_id": 1}, {$set: {item: "apple"}, $setOnInsert: {defaultQty: 100}}, {upsert: true})

Enter fullscreen mode Exit fullscreen mode

Replace

db.coll.replaceOne({"name": "Max"}, {"firstname": "Maxime", "surname": "Beugnet"})

Enter fullscreen mode Exit fullscreen mode

Save

db.coll.save({"item": "book", "qty": 40})

Enter fullscreen mode Exit fullscreen mode

Write concern

db.coll.update({}, {$set: {"x": 1}}, {"writeConcern": {"w": "majority", "wtimeout": 5000}})

Enter fullscreen mode Exit fullscreen mode

Find

db.coll.findOne() // returns a single document
db.coll.find()    // returns a cursor - show 20 results - "it" to display more
db.coll.find().pretty()
db.coll.find({name: "Max", age: 32}) // implicit logical "AND".
db.coll.find({date: ISODate("2020-09-25T13:57:17.180Z")})
db.coll.find({name: "Max", age: 32}).explain("executionStats") // or "queryPlanner" or "allPlansExecution"
db.coll.distinct("name")

Enter fullscreen mode Exit fullscreen mode

Count

db.coll.count({age: 32})          // estimation based on collection metadata
db.coll.estimatedDocumentCount()  // estimation based on collection metadata
db.coll.countDocuments({age: 32}) // alias for an aggregation pipeline - accurate count

Enter fullscreen mode Exit fullscreen mode

Comparison

db.coll.find({"year": {$gt: 1970}})
db.coll.find({"year": {$gte: 1970}})
db.coll.find({"year": {$lt: 1970}})
db.coll.find({"year": {$lte: 1970}})
db.coll.find({"year": {$ne: 1970}})
db.coll.find({"year": {$in: [1958, 1959]}})
db.coll.find({"year": {$nin: [1958, 1959]}})

Enter fullscreen mode Exit fullscreen mode

Logical

db.coll.find({name:{$not: {$eq: "Max"}}})
db.coll.find({$or: [{"year" : 1958}, {"year" : 1959}]})
db.coll.find({$nor: [{price: 1.99}, {sale: true}]})
db.coll.find({
$and: [
    {$or: [{qty: {$lt :10}}, {qty :{$gt: 50}}]},
{$or: [{sale: true}, {price: {$lt: 5 }}]}
]
})

Enter fullscreen mode Exit fullscreen mode

Element

db.coll.find({name: {$exists: true}})
db.coll.find({"zipCode": {$type: 2 }})
db.coll.find({"zipCode": {$type: "string"}})

Enter fullscreen mode Exit fullscreen mode

Aggregation Pipeline

db.coll.aggregate([
{$match: {status: "A"}},
{$group: {_id: "$cust_id", total: {$sum: "$amount"}}},
{$sort: {total: -1}}
])

Enter fullscreen mode Exit fullscreen mode

Text search with a "text" index

db.coll.find({$text: {$search: "cake"}}, {score: {$meta: "textScore"}}).sort({score: {$meta: "textScore"}})

Enter fullscreen mode Exit fullscreen mode

Regex

db.coll.find({name: /^Max/}) // regex: starts by letter "M"
db.coll.find({name: /^Max$/i}) // regex case insensitive

Enter fullscreen mode Exit fullscreen mode

Array

db.coll.find({tags: {$all: ["Realm", "Charts"]}})
db.coll.find({field: {$size: 2}}) // impossible to index - prefer storing the size of the array & update it
db.coll.find({results: {$elemMatch: {product: "xyz", score: {$gte: 8}}}})

Enter fullscreen mode Exit fullscreen mode

Projections

db.coll.find({"x": 1}, {"actors": 1}) // actors + \_id
db.coll.find({"x": 1}, {"actors": 1, "\_id": 0}) // actors
db.coll.find({"x": 1}, {"actors": 0, "summary": 0}) // all but "actors" and "summary"

Enter fullscreen mode Exit fullscreen mode

Sort, skip, limit

db.coll.find({}).sort({"year": 1, "rating": -1}).skip(10).limit(3)

Enter fullscreen mode Exit fullscreen mode

Read Concern

db.coll.find().readConcern("majority")

Enter fullscreen mode Exit fullscreen mode

Databases and Collections

Drop

db.coll.drop()    // removes the collection and its index definitions
db.dropDatabase() // double check that you are *NOT* on the PROD cluster... :-)

Enter fullscreen mode Exit fullscreen mode

Create Collection

db.createCollection("contacts", {
   validator: {$jsonSchema: {
      bsonType: "object",
      required: ["phone"],
      properties: {
         phone: {
            bsonType: "string",
            description: "must be a string and is required"
         },
         email: {
            bsonType: "string",
            pattern: "@mongodb\.com$",
            description: "must be a string and match the regular expression pattern"
         },
         status: {
            enum: [ "Unknown", "Incomplete" ],
            description: "can only be one of the enum values"
         }
      }
   }}
})

Enter fullscreen mode Exit fullscreen mode

Other Collection Functions

db.coll.stats()
db.coll.storageSize()
db.coll.totalIndexSize()
db.coll.totalSize()
db.coll.validate({full: true})
db.coll.renameCollection("new_coll", true) // 2nd parameter to drop the target collection if exists

Enter fullscreen mode Exit fullscreen mode

Indexes

Basics

List

db.coll.getIndexes()
db.coll.getIndexKeys()

Enter fullscreen mode Exit fullscreen mode

Drop Indexes

db.coll.dropIndex("name_1")

Enter fullscreen mode Exit fullscreen mode

Hide/Unhide Indexes

db.coll.hideIndex("name_1")
db.coll.unhideIndex("name_1")

Enter fullscreen mode Exit fullscreen mode

Create Indexes

// Index Types
db.coll.createIndex({"name": 1})                // single field index
db.coll.createIndex({"name": 1, "date": 1})     // compound index
db.coll.createIndex({foo: "text", bar: "text"}) // text index
db.coll.createIndex({"$**": "text"})            // wildcard text index
db.coll.createIndex({"userMetadata.$**": 1})    // wildcard index
db.coll.createIndex({"loc": "2d"})              // 2d index
db.coll.createIndex({"loc": "2dsphere"})        // 2dsphere index
db.coll.createIndex({"_id": "hashed"})          // hashed index

// Index Options
db.coll.createIndex({"lastModifiedDate": 1}, {expireAfterSeconds: 3600})      // TTL index
db.coll.createIndex({"name": 1}, {unique: true})
db.coll.createIndex({"name": 1}, {partialFilterExpression: {age: {$gt: 18}}}) // partial index
db.coll.createIndex({"name": 1}, {collation: {locale: 'en', strength: 1}})    // case insensitive index with strength = 1 or 2
db.coll.createIndex({"name": 1 }, {sparse: true})

Enter fullscreen mode Exit fullscreen mode

Others

Handy commands

use admin
db.createUser({"user": "root", "pwd": passwordPrompt(), "roles": ["root"]})
db.dropUser("root")
db.auth( "user", passwordPrompt() )

use test
db.getSiblingDB("dbname")
db.currentOp()
db.killOp(123) // opid

db.fsyncLock()
db.fsyncUnlock()

db.getCollectionNames()
db.getCollectionInfos()
db.printCollectionStats()
db.stats()

db.getReplicationInfo()
db.printReplicationInfo()
db.isMaster()
db.hostInfo()
db.printShardingStatus()
db.shutdownServer()
db.serverStatus()

db.setSlaveOk()
db.getSlaveOk()

db.getProfilingLevel()
db.getProfilingStatus()
db.setProfilingLevel(1, 200) // 0 == OFF, 1 == ON with slowms, 2 == ON

db.enableFreeMonitoring()
db.disableFreeMonitoring()
db.getFreeMonitoringStatus()

db.createView("viewName", "sourceColl", [{$project:{department: 1}}])

Enter fullscreen mode Exit fullscreen mode

Replica Set

rs.status()
rs.initiate({"_id": "replicaTest",
  members: [
    { _id: 0, host: "127.0.0.1:27017" },
    { _id: 1, host: "127.0.0.1:27018" },
    { _id: 2, host: "127.0.0.1:27019", arbiterOnly:true }]
})
rs.add("mongodbd1.example.net:27017")
rs.addArb("mongodbd2.example.net:27017")
rs.remove("mongodbd1.example.net:27017")
rs.conf()
rs.isMaster()
rs.printReplicationInfo()
rs.printSlaveReplicationInfo()
rs.reconfig(<valid_conf>)
rs.slaveOk()
rs.stepDown(20, 5) // (stepDownSecs, secondaryCatchUpPeriodSecs)

Enter fullscreen mode Exit fullscreen mode

Sharded Cluster

sh.status()
sh.addShard("rs1/mongodbd1.example.net:27017")
sh.shardCollection("mydb.coll", {zipcode: 1})

sh.moveChunk("mydb.coll", { zipcode: "53187" }, "shard0019")
sh.splitAt("mydb.coll", {x: 70})
sh.splitFind("mydb.coll", {x: 70})
sh.disableAutoSplit()
sh.enableAutoSplit()

sh.startBalancer()
sh.stopBalancer()
sh.disableBalancing("mydb.coll")
sh.enableBalancing("mydb.coll")
sh.getBalancerState()
sh.setBalancerState(true/false)
sh.isBalancerRunning()

sh.addTagRange("mydb.coll", {state: "NY", zip: MinKey }, { state: "NY", zip: MaxKey }, "NY")
sh.removeTagRange("mydb.coll", {state: "NY", zip: MinKey }, { state: "NY", zip: MaxKey }, "NY")
sh.addShardTag("shard0000", "NYC")
sh.removeShardTag("shard0000", "NYC")

sh.addShardToZone("shard0000", "JFK")
sh.removeShardFromZone("shard0000", "NYC")
sh.removeRangeFromZone("mydb.coll", {a: 1, b: 1}, {a: 10, b: 10})

Enter fullscreen mode Exit fullscreen mode

Change Streams

watchCursor = db.coll.watch( [ { $match : {"operationType" : "insert" } } ] )

while (!watchCursor.isExhausted()){
   if (watchCursor.hasNext()){
      print(tojson(watchCursor.next()));
   }
}

Enter fullscreen mode Exit fullscreen mode

πŸ“Œ Postgres

PostgreSQL Cheat Sheet & Quick Reference

Recon

Show version

SHOW SERVER_VERSION;

Enter fullscreen mode Exit fullscreen mode

Show system status

\conninfo

Enter fullscreen mode Exit fullscreen mode

Show environmental variables

SHOW ALL;

Enter fullscreen mode Exit fullscreen mode

List users

SELECT rolname FROM pg_roles;

Enter fullscreen mode Exit fullscreen mode

Show current user

SELECT current_user;

Enter fullscreen mode Exit fullscreen mode

Show current user's permissions

\du

Enter fullscreen mode Exit fullscreen mode

Show current database

SELECT current_database();

Enter fullscreen mode Exit fullscreen mode

Show all tables in database

\dt

Enter fullscreen mode Exit fullscreen mode

List functions

\df <schema>

Enter fullscreen mode Exit fullscreen mode

Databases

List databases

\l

Enter fullscreen mode Exit fullscreen mode

Connect to database

\c <database_name>

Enter fullscreen mode Exit fullscreen mode

Show current database

SELECT current_database();

Enter fullscreen mode Exit fullscreen mode

Create database

CREATE DATABASE <database_name> WITH OWNER <username>;

Enter fullscreen mode Exit fullscreen mode

Drop database

DROP DATABASE IF EXISTS <database_name>;

Enter fullscreen mode Exit fullscreen mode

Rename database

ALTER DATABASE <old_name> RENAME TO <new_name>;

Enter fullscreen mode Exit fullscreen mode

Tables

List tables, in current db

\dt

SELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;

Enter fullscreen mode Exit fullscreen mode

List tables, globally

\dt *.*.

SELECT * FROM pg_catalog.pg_tables

Enter fullscreen mode Exit fullscreen mode

List table schema

\d <table_name>
\d+ <table_name>

SELECT column_name, data_type, character_maximum_length
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '<table_name>';

Enter fullscreen mode Exit fullscreen mode

Create table

CREATE TABLE <table_name>(
  <column_name> <column_type>,
  <column_name> <column_type>
);

Enter fullscreen mode Exit fullscreen mode

Create table, with an auto-incrementing primary key

CREATE TABLE <table_name> (
  <column_name> SERIAL PRIMARY KEY
);

Enter fullscreen mode Exit fullscreen mode

Delete table

DROP TABLE IF EXISTS <table_name> CASCADE;

Enter fullscreen mode Exit fullscreen mode

Permissions

Become the postgres user, if you have permission errors

sudo su - postgres
psql

Enter fullscreen mode Exit fullscreen mode

Grant all permissions on database

GRANT ALL PRIVILEGES ON DATABASE <db_name> TO <user_name>;

Enter fullscreen mode Exit fullscreen mode

Grant connection permissions on database

GRANT CONNECT ON DATABASE <db_name> TO <user_name>;

Enter fullscreen mode Exit fullscreen mode

Grant permissions on schema

GRANT USAGE ON SCHEMA public TO <user_name>;

Enter fullscreen mode Exit fullscreen mode

Grant permissions to functions

GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO <user_name>;

Enter fullscreen mode Exit fullscreen mode

Grant permissions to select, update, insert, delete, on a all tables

GRANT SELECT, UPDATE, INSERT ON ALL TABLES IN SCHEMA public TO <user_name>;

Enter fullscreen mode Exit fullscreen mode

Grant permissions, on a table

GRANT SELECT, UPDATE, INSERT ON <table_name> TO <user_name>;

Enter fullscreen mode Exit fullscreen mode

Grant permissions, to select, on a table

GRANT SELECT ON ALL TABLES IN SCHEMA public TO <user_name>;

Enter fullscreen mode Exit fullscreen mode

Columns

Add column

ALTER TABLE <table_name> IF EXISTS
ADD <column_name> <data_type> [<constraints>];

Enter fullscreen mode Exit fullscreen mode

Update column

ALTER TABLE <table_name> IF EXISTS
ALTER <column_name> TYPE <data_type> [<constraints>];

Enter fullscreen mode Exit fullscreen mode

Delete column

ALTER TABLE <table_name> IF EXISTS
DROP <column_name>;

Enter fullscreen mode Exit fullscreen mode

Update column to be an auto-incrementing primary key

ALTER TABLE <table_name>
ADD COLUMN <column_name> SERIAL PRIMARY KEY;

Enter fullscreen mode Exit fullscreen mode

Insert into a table, with an auto-incrementing primary key

INSERT INTO <table_name>
VALUES (DEFAULT, <value1>);


INSERT INTO <table_name> (<column1_name>,<column2_name>)
VALUES ( <value1>,<value2> );

Enter fullscreen mode Exit fullscreen mode

Data

Select all data

SELECT * FROM <table_name>;

Enter fullscreen mode Exit fullscreen mode

Read one row of data

SELECT * FROM <table_name> LIMIT 1;

Enter fullscreen mode Exit fullscreen mode

Search for data

SELECT * FROM <table_name> WHERE <column_name> = <value>;

Enter fullscreen mode Exit fullscreen mode

Insert data

INSERT INTO <table_name> VALUES( <value_1>, <value_2> );

Enter fullscreen mode Exit fullscreen mode

Update data

UPDATE <table_name>
SET <column_1> = <value_1>, <column_2> = <value_2>
WHERE <column_1> = <value>;

Enter fullscreen mode Exit fullscreen mode

Delete all data

DELETE FROM <table_name>;

Enter fullscreen mode Exit fullscreen mode

Delete specific data

DELETE FROM <table_name>
WHERE <column_name> = <value>;

Enter fullscreen mode Exit fullscreen mode

Users

List roles

SELECT rolname FROM pg_roles;

Enter fullscreen mode Exit fullscreen mode

Create user

CREATE USER <user_name> WITH PASSWORD '<password>';

Enter fullscreen mode Exit fullscreen mode

Drop user

DROP USER IF EXISTS <user_name>;

Enter fullscreen mode Exit fullscreen mode

Alter user password

ALTER ROLE <user_name> WITH PASSWORD '<password>';

Enter fullscreen mode Exit fullscreen mode

Schema

List schemas

\dn

SELECT schema_name FROM information_schema.schemata;

SELECT nspname FROM pg_catalog.pg_namespace;

Enter fullscreen mode Exit fullscreen mode

Create schema

CREATE SCHEMA IF NOT EXISTS <schema_name>;

Enter fullscreen mode Exit fullscreen mode

Drop schema

DROP SCHEMA IF EXISTS <schema_name> CASCADE;

Enter fullscreen mode Exit fullscreen mode

Dates

Show current date YYYY-MM-DD

SELECT current_date;

Enter fullscreen mode Exit fullscreen mode

Calculate age between two dates

SELECT age(timestamp, timestamp);

Enter fullscreen mode Exit fullscreen mode

Show current time with time zone

SELECT current_time;

Enter fullscreen mode Exit fullscreen mode

Make dates using integers

SELECT make_date(2021,03,25);

Enter fullscreen mode Exit fullscreen mode

πŸ“Œ MySQL

MySQL Cheat Sheet & Quick Reference

Managing tables

Create a new table with three columns

CREATE TABLE t (
     id    INT,
     name  VARCHAR DEFAULT NOT NULL,
     price INT DEFAULT 0
     PRIMARY KEY(id)
);

Enter fullscreen mode Exit fullscreen mode

Delete the table from the database

DROP TABLE t ;

Enter fullscreen mode Exit fullscreen mode

Add a new column to the table

ALTER TABLE t ADD column;

Enter fullscreen mode Exit fullscreen mode

Drop column c from the table

ALTER TABLE t DROP COLUMN c ;

Enter fullscreen mode Exit fullscreen mode

Add a constraint

ALTER TABLE t ADD constraint;

Enter fullscreen mode Exit fullscreen mode

Drop a constraint

ALTER TABLE t DROP constraint;

Enter fullscreen mode Exit fullscreen mode

Rename a table from t1 to t2

ALTER TABLE t1 RENAME TO t2;

Enter fullscreen mode Exit fullscreen mode

Rename column c1 to c2

ALTER TABLE t1 RENAME c1 TO c2 ;

Enter fullscreen mode Exit fullscreen mode

Remove all data in a table

TRUNCATE TABLE t;

Enter fullscreen mode Exit fullscreen mode

Querying data from a table

Query data in columns c1, c2 from a table

SELECT c1, c2 FROM t

Enter fullscreen mode Exit fullscreen mode

Query all rows and columns from a table

SELECT * FROM t

Enter fullscreen mode Exit fullscreen mode

Query data and filter rows with a condition

SELECT c1, c2 FROM t
WHERE condition

Enter fullscreen mode Exit fullscreen mode

Query distinct rows from a table

SELECT DISTINCT c1 FROM t
WHERE condition

Enter fullscreen mode Exit fullscreen mode

Sort the result set in ascending or descending order

SELECT c1, c2 FROM t
ORDER BY c1 ASC [DESC]

Enter fullscreen mode Exit fullscreen mode

Skip offset of rows and return the next n rows

SELECT c1, c2 FROM t
ORDER BY c1 
LIMIT n OFFSET offset

Enter fullscreen mode Exit fullscreen mode

Group rows using an aggregate function

SELECT c1, aggregate(c2)
FROM t
GROUP BY c1

Enter fullscreen mode Exit fullscreen mode

Filter groups using HAVING clause

SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
HAVING condition

Enter fullscreen mode Exit fullscreen mode

Querying from multiple tables

Inner join t1 and t2

SELECT c1, c2 
FROM t1
INNER JOIN t2 ON condition

Enter fullscreen mode Exit fullscreen mode

Left join t1 and t1

SELECT c1, c2 
FROM t1
LEFT JOIN t2 ON condition

Enter fullscreen mode Exit fullscreen mode

Right join t1 and t2

SELECT c1, c2 
FROM t1
RIGHT JOIN t2 ON condition

Enter fullscreen mode Exit fullscreen mode

Perform full outer join

SELECT c1, c2 
FROM t1
FULL OUTER JOIN t2 ON condition

Enter fullscreen mode Exit fullscreen mode

Produce a Cartesian product of rows in tables

SELECT c1, c2 
FROM t1
CROSS JOIN t2

Enter fullscreen mode Exit fullscreen mode

Another way to perform cross join

SELECT c1, c2 
FROM t1, t2

Enter fullscreen mode Exit fullscreen mode

Join t1 to itself using INNER JOIN clause

SELECT c1, c2
FROM t1 A
INNER JOIN t1 B ON condition

Enter fullscreen mode Exit fullscreen mode

Using SQL Operators Combine rows from two queries

SELECT c1, c2 FROM t1
UNION [ALL]
SELECT c1, c2 FROM t2

Enter fullscreen mode Exit fullscreen mode

Return the intersection of two queries

SELECT c1, c2 FROM t1
INTERSECT
SELECT c1, c2 FROM t2

Enter fullscreen mode Exit fullscreen mode

Subtract a result set from another result set

SELECT c1, c2 FROM t1
MINUS
SELECT c1, c2 FROM t2

Enter fullscreen mode Exit fullscreen mode

Query rows using pattern matching %, _

SELECT c1, c2 FROM t1
WHERE c1 [NOT] LIKE pattern

Enter fullscreen mode Exit fullscreen mode

Query rows in a list

SELECT c1, c2 FROM t
WHERE c1 [NOT] IN value_list

Enter fullscreen mode Exit fullscreen mode

Query rows between two values

SELECT c1, c2 FROM t
WHERE  c1 BETWEEN low AND high

Enter fullscreen mode Exit fullscreen mode

Check if values in a table is NULL or not

SELECT c1, c2 FROM t
WHERE  c1 IS [NOT] NULL

Enter fullscreen mode Exit fullscreen mode

Using SQL constraints

Set c1 and c2 as a primary key

CREATE TABLE t(
    c1 INT, c2 INT, c3 VARCHAR,
    PRIMARY KEY (c1,c2)
);

Enter fullscreen mode Exit fullscreen mode

Set c2 column as a foreign key

CREATE TABLE t1(
    c1 INT PRIMARY KEY,  
    c2 INT,
    FOREIGN KEY (c2) REFERENCES t2(c2)
);

Enter fullscreen mode Exit fullscreen mode

Make the values in c1 and c2 unique

CREATE TABLE t(
    c1 INT, c1 INT,
    UNIQUE(c2,c3)
);

Enter fullscreen mode Exit fullscreen mode

Ensure c1 > 0 and values in c1 >= c2

CREATE TABLE t(
  c1 INT, c2 INT,
  CHECK(c1> 0 AND c1 >= c2)
);

Enter fullscreen mode Exit fullscreen mode

Set values in c2 column not NULL

CREATE TABLE t(
     c1 INT PRIMARY KEY,
     c2 VARCHAR NOT NULL
);

Enter fullscreen mode Exit fullscreen mode

Modifying Data

Insert one row into a table

INSERT INTO t(column_list)
VALUES(value_list);

Enter fullscreen mode Exit fullscreen mode

Insert multiple rows into a table

INSERT INTO t(column_list)
VALUES (value_list), 
       (value_list), …;

Enter fullscreen mode Exit fullscreen mode

Insert rows from t2 into t1

INSERT INTO t1(column_list)
SELECT column_list
FROM t2;

Enter fullscreen mode Exit fullscreen mode

Update new value in the column c1 for all rows

UPDATE t
SET c1 = new_value;

Enter fullscreen mode Exit fullscreen mode

Update values in the column c1, c2 that match the condition

UPDATE t
SET c1 = new_value, 
        c2 = new_value
WHERE condition;

Enter fullscreen mode Exit fullscreen mode

Delete all data in a table

DELETE FROM t;

Enter fullscreen mode Exit fullscreen mode

Delete subset of rows in a table

DELETE FROM t
WHERE condition;

Enter fullscreen mode Exit fullscreen mode

Managing Views

Create a new view that consists of c1 and c2

CREATE VIEW v(c1,c2) 
AS
SELECT c1, c2
FROM t;

Enter fullscreen mode Exit fullscreen mode

Create a new view with check option

CREATE VIEW v(c1,c2) 
AS
SELECT c1, c2
FROM t;
WITH [CASCADED | LOCAL] CHECK OPTION;

Enter fullscreen mode Exit fullscreen mode

Create a recursive view

CREATE RECURSIVE VIEW v 
AS
select-statement -- anchor part
UNION [ALL]
select-statement; -- recursive part

Enter fullscreen mode Exit fullscreen mode

Create a temporary view

CREATE TEMPORARY VIEW v 
AS
SELECT c1, c2
FROM t;

Enter fullscreen mode Exit fullscreen mode

Delete a view

DROP VIEW view_name;

Enter fullscreen mode Exit fullscreen mode

Managing triggers

Create or modify a trigger

CREATE OR MODIFY TRIGGER trigger_name
WHEN EVENT
ON table_name TRIGGER_TYPE
EXECUTE stored_procedure;

Enter fullscreen mode Exit fullscreen mode

WHEN

- -
BEFORE invoke before the event occurs
AFTER invoke after the event occurs

EVENT

- -
INSERT invoke for INSERT
UPDATE invoke for UPDATE
DELETE invoke for DELETE

TRIGGER_TYPE

- -
FOR EACH ROW
FOR EACH STATEMENT

Managing indexes

Create an index on c1 and c2 of the t table

CREATE INDEX idx_name 
ON t(c1,c2);

Enter fullscreen mode Exit fullscreen mode

Create a unique index on c3, c4 of the t table

CREATE UNIQUE INDEX idx_name
ON t(c3,c4)

Enter fullscreen mode Exit fullscreen mode

Drop an index

DROP INDEX idx_name;

Enter fullscreen mode Exit fullscreen mode

πŸ“Œ Redis

Redis Cheat Sheet & Quick Reference

Redis

This is a redis quick reference cheat sheet that lists examples of redis commands

Getting Started

Getting started

Start Redis

$ redis-server

Enter fullscreen mode Exit fullscreen mode

Connect to redis (Redis CLI client)

$ redis-cli

Enter fullscreen mode Exit fullscreen mode

Connect to redis (telnet)

$ telnet 127.0.0.1 6379

Enter fullscreen mode Exit fullscreen mode

Hello World

Ping

redis> PING
PONG

Enter fullscreen mode Exit fullscreen mode

Hello World

redis> SET mykey "Hello world"
OK
redis> GET mykey
"Hello world"

Enter fullscreen mode Exit fullscreen mode

Basic Data types

Redis supports 5 basic data types

Redis String command

APPEND

APPEND key value

Enter fullscreen mode Exit fullscreen mode

Example

redis> EXISTS mykey
(integer) 0
redis> APPEND mykey "Hello"
(integer) 5
redis> APPEND mykey " World"
(integer) 11
redis> GET mykey
"Hello World"

Enter fullscreen mode Exit fullscreen mode

Append a value to a key

BITCOUNT

BITCOUNT key [start end]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "foobar"
"OK"
redis> BITCOUNT mykey
(integer) 26
redis> BITCOUNT mykey 0 0
(integer) 4
redis> BITCOUNT mykey 1 1
(integer) 6

Enter fullscreen mode Exit fullscreen mode

Count set bits in a string

BITFIELD

BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]

Enter fullscreen mode Exit fullscreen mode

Example

redis> BITFIELD mykey INCRBY i5 100 1 GET u4 0
1) (integer) 1
2) (integer) 0

Enter fullscreen mode Exit fullscreen mode

Perform arbitrary bitfield integer operations on strings

BITOP

BITOP operation destkey key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "foobar"
"OK"
redis> SET key2 "abcdef"
"OK"
redis> BITOP AND dest key1 key2
(integer) 6
redis> GET dest
"`bc`ab"

Enter fullscreen mode Exit fullscreen mode

Perform bitwise operations between strings

BITPOS

BITPOS key bit [start] [end]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "\xff\xf0\x00"
"OK"
redis> BITPOS mykey 0
(integer) 12
redis> SET mykey "\x00\xff\xf0"
"OK"
redis> BITPOS mykey 1 0
(integer) 8
redis> BITPOS mykey 1 2
(integer) 16
redis> set mykey "\x00\x00\x00"
"OK"
redis> BITPOS mykey 1
(integer) -1

Enter fullscreen mode Exit fullscreen mode

Find first bit set or clear in a string

DECR

DECR key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "10"
"OK"
redis> DECR mykey
(integer) 9
redis> SET mykey "234293482390480948029348230948"
"OK"
redis> DECR mykey
ERR ERR value is not an integer or out of range

Enter fullscreen mode Exit fullscreen mode

Decrement the integer value of a key by one

DECRBY

DECRBY key decrement

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "10"
"OK"
redis> DECRBY mykey 3
(integer) 7

Enter fullscreen mode Exit fullscreen mode

Decrement the integer value of a key by the given number

GET

GET key

Enter fullscreen mode Exit fullscreen mode

Example

redis> GET nonexisting
(nil)
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"

Enter fullscreen mode Exit fullscreen mode

Get the value of a key

GETBIT

GETBIT key offset

Enter fullscreen mode Exit fullscreen mode

Example

redis> SETBIT mykey 7 1
(integer) 0
redis> GETBIT mykey 0
(integer) 0
redis> GETBIT mykey 7
(integer) 1
redis> GETBIT mykey 100
(integer) 0

Enter fullscreen mode Exit fullscreen mode

Returns the bit value at offset in the string value stored at key

GETRANGE

GETRANGE key start end

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "This is a string"
"OK"
redis> GETRANGE mykey 0 3
"This"
redis> GETRANGE mykey -3 -1
"ing"
redis> GETRANGE mykey 0 -1
"This is a string"
redis> GETRANGE mykey 10 100
"string"

Enter fullscreen mode Exit fullscreen mode

Get a substring of the string stored at a key

GETSET

GETSET key value

Enter fullscreen mode Exit fullscreen mode

Example

redis> INCR mycounter
(integer) 1
redis> GETSET mycounter "0"
"1"
redis> GET mycounter
"0"

Enter fullscreen mode Exit fullscreen mode

Set the string value of a key and return its old value

INCR

INCR key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "10"
"OK"
redis> INCR mykey
(integer) 11
redis> GET mykey
"11"

Enter fullscreen mode Exit fullscreen mode

Increment the integer value of a key by one

MSETNX

MSETNX key value [key value ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> MSETNX key1 "Hello" key2 "there"
(integer) 1
redis> MSETNX key2 "new" key3 "world"
(integer) 0
redis> MGET key1 key2 key3
1) "Hello"
2) "there"
3) (nil)

Enter fullscreen mode Exit fullscreen mode

Set multiple keys to multiple values, only if none of the keys exist

INCRBYFLOAT

INCRBYFLOAT key increment

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey 10.50
"OK"
redis> INCRBYFLOAT mykey 0.1
"10.6"
redis> INCRBYFLOAT mykey -5
"5.6"
redis> SET mykey 5.0e3
"OK"
redis> INCRBYFLOAT mykey 2.0e2
"5200"

Enter fullscreen mode Exit fullscreen mode

Increment the float value of a key by the given amount

MGET

MGET key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> MGET key1 key2 nonexisting
1) "Hello"
2) "World"
3) (nil)

Enter fullscreen mode Exit fullscreen mode

Get the values of all the given keys

MSET

MSET key value [key value ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> MSET key1 "Hello" key2 "World"
"OK"
redis> GET key1
"Hello"
redis> GET key2
"World"

Enter fullscreen mode Exit fullscreen mode

Set multiple keys to multiple values

INCRBY

INCRBY key increment

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "10"
"OK"
redis> INCRBY mykey 5
(integer) 15

Enter fullscreen mode Exit fullscreen mode

Increment the integer value of a key by the given amount

PSETEX

PSETEX key milliseconds value

Enter fullscreen mode Exit fullscreen mode

Example

redis> PSETEX mykey 1000 "Hello"
"OK"
redis> PTTL mykey
(integer) 1000
redis> GET mykey
"Hello"

Enter fullscreen mode Exit fullscreen mode

Set the value and expiration in milliseconds of a key

SET

SET key value [EX seconds|PX milliseconds|KEEPTTL] [NX|XX] [GET]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
redis> SET anotherkey "will expire in a minute" EX 60
"OK"

Enter fullscreen mode Exit fullscreen mode

Set the string value of a key

SETBIT

SETBIT key offset value

Enter fullscreen mode Exit fullscreen mode

Example

redis> SETBIT mykey 7 1
(integer) 0
redis> SETBIT mykey 7 0
(integer) 1
redis> GET mykey
"\u0000"

Enter fullscreen mode Exit fullscreen mode

Sets or clears the bit at offset in the string value stored at key

SETEX

SETEX key seconds value

Enter fullscreen mode Exit fullscreen mode

Example

redis> SETEX mykey 10 "Hello"
"OK"
redis> TTL mykey
(integer) 10
redis> GET mykey
"Hello"

Enter fullscreen mode Exit fullscreen mode

Set the value and expiration of a key

SETNX

SETNX key value

Enter fullscreen mode Exit fullscreen mode

Example

redis> SETNX mykey "Hello"
(integer) 1
redis> SETNX mykey "World"
(integer) 0
redis> GET mykey
"Hello"

Enter fullscreen mode Exit fullscreen mode

Set the value of a key, only if the key does not exist

SETRANGE

SETRANGE key offset value

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "Hello World"
"OK"
redis> SETRANGE key1 6 "Redis"
(integer) 11
redis> GET key1
"Hello Redis"

Enter fullscreen mode Exit fullscreen mode

Overwrite part of a string at key starting at the specified offset

STRLEN

STRLEN key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello world"
"OK"
redis> STRLEN mykey
(integer) 11
redis> STRLEN nonexisting
(integer) 0

Enter fullscreen mode Exit fullscreen mode

Get the length of the value stored in a key

STRALGO

STRALGO LCS algo-specific-argument [algo-specific-argument ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> STRALGO LCS KEYS key1 key2 IDX
1) "matches"
2) 1) 1) 1) (integer) 4
         2) (integer) 7
      2) 1) (integer) 5
         2) (integer) 8
   2) 1) 1) (integer) 2
         2) (integer) 3
      2) 1) (integer) 0
         2) (integer) 1
3) "len"
4) (integer) 6

Enter fullscreen mode Exit fullscreen mode

Run algorithms (currently LCS) against strings

Redis Set command

SADD

SADD key member [member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "Hello"
2) "World"

Enter fullscreen mode Exit fullscreen mode

Add one or more members to a set

SCARD

SCARD key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SCARD myset
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Get the number of members in a set

SDIFF

SDIFF key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFF key1 key2
1) "a"
2) "b"

Enter fullscreen mode Exit fullscreen mode

Subtract multiple sets

SDIFFSTORE

SDIFFSTORE destination key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFFSTORE key key1 key2
(integer) 2
redis> SMEMBERS key
1) "a"
2) "b"

Enter fullscreen mode Exit fullscreen mode

Subtract multiple sets and store the resulting set in a key

SINTER

SINTER key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTER key1 key2
1) "c"

Enter fullscreen mode Exit fullscreen mode

Intersect multiple sets

SINTERSTORE

SINTERSTORE destination key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTERSTORE key key1 key2
(integer) 1
redis> SMEMBERS key
1) "c"

Enter fullscreen mode Exit fullscreen mode

Intersect multiple sets and store the resulting set in a key

SISMEMBER

SISMEMBER key member

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "one"
(integer) 1
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0

Enter fullscreen mode Exit fullscreen mode

Determine if a given value is a member of a set

SMISMEMBER

SMISMEMBER key member [member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "one"
(integer) 1
redis> SADD myset "one"
(integer) 0
redis> SMISMEMBER myset "one" "notamember"
1) (integer) 1
2) (integer) 0

Enter fullscreen mode Exit fullscreen mode

Returns the membership associated with the given elements for a set

SMEMBERS

SMEMBERS key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SMEMBERS myset
1) "Hello"
2) "World"

Enter fullscreen mode Exit fullscreen mode

Get all the members in a set

SMOVE

SMOVE source destination member

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myotherset "three"
(integer) 1
redis> SMOVE myset myotherset "two"
(integer) 1
redis> SMEMBERS myset
1) "one"
redis> SMEMBERS myotherset
1) "two"
2) "three"

Enter fullscreen mode Exit fullscreen mode

Move a member from one set to another

SPOP

SPOP key [count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SPOP myset
"two"
redis> SMEMBERS myset
1) "one"
2) "three"
redis> SADD myset "four"
(integer) 1
redis> SADD myset "five"
(integer) 1
redis> SPOP myset 3
1) "four"
2) "five"
3) "three"
redis> SMEMBERS myset
1) "one"

Enter fullscreen mode Exit fullscreen mode

Remove and return one or multiple random members from a set

SRANDMEMBER

SRANDMEMBER key [count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset one two three
(integer) 3
redis> SRANDMEMBER myset
"three"
redis> SRANDMEMBER myset 2
1) "two"
2) "three"
redis> SRANDMEMBER myset -5
1) "one"
2) "two"
3) "three"
4) "three"
5) "one"

Enter fullscreen mode Exit fullscreen mode

Get one or multiple random members from a set

SREM

SREM key member [member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SREM myset "one"
(integer) 1
redis> SREM myset "four"
(integer) 0
redis> SMEMBERS myset
1) "two"
2) "three"

Enter fullscreen mode Exit fullscreen mode

Remove one or more members from a set

SUNION

SUNION key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNION key1 key2
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"

Enter fullscreen mode Exit fullscreen mode

Add multiple sets

SUNIONSTORE

SUNIONSTORE destination key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNIONSTORE key key1 key2
(integer) 5
redis> SMEMBERS key
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"

Enter fullscreen mode Exit fullscreen mode

Add multiple sets and store the resulting set in a key

Redis List command

Misc

  • -: BRPOPLPUSH
    • -: Pop an element from a list, push it to another list and return it; or block until one is available
  • -: BLMOVE
    • -: Pop an element from a list, push it to another list and return it; or block until one is available

BLPOP

BLPOP key [key ...] timeout

Enter fullscreen mode Exit fullscreen mode

Example

redis> DEL list1 list2
(integer) 0
redis> RPUSH list1 a b c
(integer) 3
redis> BLPOP list1 list2 0
1) "list1"
2) "a"

Enter fullscreen mode Exit fullscreen mode

Remove and get the first element in a list, or block until one is available |

BRPOP

BRPOP key [key ...] timeout

Enter fullscreen mode Exit fullscreen mode

Example

redis> DEL list1 list2
(integer) 0
redis> RPUSH list1 a b c
(integer) 3
redis> BRPOP list1 list2 0
1) "list1"
2) "c"

Enter fullscreen mode Exit fullscreen mode

Remove and get the last element in a list, or block until one is available |

LINDEX

LINDEX key index

Enter fullscreen mode Exit fullscreen mode

Example

redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LINDEX mylist 0
"Hello"
redis> LINDEX mylist -1
"World"
redis> LINDEX mylist 3
(nil)

Enter fullscreen mode Exit fullscreen mode

Get an element from a list by its index

LINSERT

LINSERT key BEFORE|AFTER pivot element

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "Hello"
(integer) 1
redis> RPUSH mylist "World"
(integer) 2
redis> LINSERT mylist BEFORE "World" "There"
(integer) 3
redis> LRANGE mylist 0 -1
1) "Hello"
2) "There"
3) "World"

Enter fullscreen mode Exit fullscreen mode

Insert an element before or after another element in a list

LLEN

LLEN key

Enter fullscreen mode Exit fullscreen mode

Example

redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LLEN mylist
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Get the length of a list

LPOP

LPOP key [count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LPOP mylist
"one"
redis> LRANGE mylist 0 -1
1) "two"
2) "three"

Enter fullscreen mode Exit fullscreen mode

Remove and get the first elements in a list

LPOS

LPOS key element [RANK rank] [COUNT num-matches] [MAXLEN len]

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist a b c d 1 2 3 4 3 3 3
(integer) 11
redis> LPOS mylist 3
(integer) 6
redis> LPOS mylist 3 COUNT 0 RANK 2
1) (integer) 8
2) (integer) 9
3) (integer) 10

Enter fullscreen mode Exit fullscreen mode

Return the index of matching elements on a list

LPUSH

LPUSH key element [element ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> LPUSH mylist "world"
(integer) 1
redis> LPUSH mylist "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"

Enter fullscreen mode Exit fullscreen mode

Prepend one or multiple elements to a list

LPUSHX

LPUSHX key element [element ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> LPUSH mylist "World"
(integer) 1
redis> LPUSHX mylist "Hello"
(integer) 2
redis> LPUSHX myotherlist "Hello"
(integer) 0
redis> LRANGE mylist 0 -1
1) "Hello"
2) "World"
redis> LRANGE myotherlist 0 -1
(empty list or set)

Enter fullscreen mode Exit fullscreen mode

Prepend an element to a list, only if the list exists

LRANGE

LRANGE key start stop

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LRANGE mylist 0 0
1) "one"
redis> LRANGE mylist -3 2
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist -100 100
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist 5 10
(empty list or set)

Enter fullscreen mode Exit fullscreen mode

Get a range of elements from a list

LREM

LREM key count element

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "hello"
(integer) 2
redis> RPUSH mylist "foo"
(integer) 3
redis> RPUSH mylist "hello"
(integer) 4
redis> LREM mylist -2 "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "foo"

Enter fullscreen mode Exit fullscreen mode

Remove elements from a list

LSET

LSET key index element

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LSET mylist 0 "four"
"OK"
redis> LSET mylist -2 "five"
"OK"
redis> LRANGE mylist 0 -1
1) "four"
2) "five"
3) "three"

Enter fullscreen mode Exit fullscreen mode

Set the value of an element in a list by its index

LTRIM

LTRIM key start stop

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LTRIM mylist 1 -1
"OK"
redis> LRANGE mylist 0 -1
1) "two"
2) "three"

Enter fullscreen mode Exit fullscreen mode

Trim a list to the specified range

RPOP

RPOP key [count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> RPOP mylist
"three"
redis> LRANGE mylist 0 -1
1) "one"
2) "two"

Enter fullscreen mode Exit fullscreen mode

Remove and get the last elements in a list

RPOPLPUSH

RPOPLPUSH source destination

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> RPOPLPUSH mylist myotherlist
"three"
redis> LRANGE mylist 0 -1
1) "one"
2) "two"
redis> LRANGE myotherlist 0 -1
1) "three"

Enter fullscreen mode Exit fullscreen mode

Remove the last element in a list, prepend it to another list and return it

LMOVE

LMOVE source destination LEFT|RIGHT LEFT|RIGHT

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LMOVE mylist myotherlist RIGHT LEFT
"three"
redis> LMOVE mylist myotherlist LEFT RIGHT
"one"
redis> LRANGE mylist 0 -1
1) "two"
redis> LRANGE myotherlist 0 -1
1) "three"
2) "one"

Enter fullscreen mode Exit fullscreen mode

Pop an element from a list, push it to another list and return it

RPUSH

RPUSH key element [element ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "world"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"

Enter fullscreen mode Exit fullscreen mode

Append one or multiple elements to a list

RPUSHX

RPUSHX key element [element ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> RPUSH mylist "Hello"
(integer) 1
redis> RPUSHX mylist "World"
(integer) 2
redis> RPUSHX myotherlist "World"
(integer) 0
redis> LRANGE mylist 0 -1
1) "Hello"
2) "World"
redis> LRANGE myotherlist 0 -1
(empty list or set)

Enter fullscreen mode Exit fullscreen mode

Append an element to a list, only if the list exists

Redis Hash command

HDEL

HDEL key field [field ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "foo"
(integer) 1
redis> HDEL myhash field1
(integer) 1
redis> HDEL myhash field2
(integer) 0

Enter fullscreen mode Exit fullscreen mode

Delete one or more hash fields

HEXISTS

HEXISTS key field

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "foo"
(integer) 1
redis> HEXISTS myhash field1
(integer) 1
redis> HEXISTS myhash field2
(integer) 0

Enter fullscreen mode Exit fullscreen mode

Determine if a hash field exists

HGET

HGET key field

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "foo"
(integer) 1
redis> HGET myhash field1
"foo"
redis> HGET myhash field2
(nil)

Enter fullscreen mode Exit fullscreen mode

Get the value of a hash field

HGETALL

HGETALL key

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"

Enter fullscreen mode Exit fullscreen mode

Get all the fields and values in a hash

HINCRBY

HINCRBY key field increment

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field 5
(integer) 1
redis> HINCRBY myhash field 1
(integer) 6
redis> HINCRBY myhash field -1
(integer) 5
redis> HINCRBY myhash field -10
(integer) -5

Enter fullscreen mode Exit fullscreen mode

Increment the integer value of a hash field by the given number

HINCRBYFLOAT

HINCRBYFLOAT key field increment

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET mykey field 10.50
(integer) 1
redis> HINCRBYFLOAT mykey field 0.1
"10.6"
redis> HINCRBYFLOAT mykey field -5
"5.6"
redis> HSET mykey field 5.0e3
(integer) 0
redis> HINCRBYFLOAT mykey field 2.0e2
"5200"

Enter fullscreen mode Exit fullscreen mode

Increment the float value of a hash field by the given amount

HKEYS

HKEYS key

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HKEYS myhash
1) "field1"
2) "field2"

Enter fullscreen mode Exit fullscreen mode

Get all the fields in a hash

HLEN

HLEN key

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HLEN myhash
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Get the number of fields in a hash

HMGET

HMGET key field [field ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HMGET myhash field1 field2 nofield
1) "Hello"
2) "World"
3) (nil)

Enter fullscreen mode Exit fullscreen mode

Get the values of all the given hash fields

HMSET

HMSET key field value [field value ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"

Enter fullscreen mode Exit fullscreen mode

Set multiple hash fields to multiple values

HSET

HSET key field value [field value ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HGET myhash field1
"Hello"

Enter fullscreen mode Exit fullscreen mode

Set the string value of a hash field

HSETNX

HSETNX key field value

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSETNX myhash field "Hello"
(integer) 1
redis> HSETNX myhash field "World"
(integer) 0
redis> HGET myhash field
"Hello"

Enter fullscreen mode Exit fullscreen mode

Set the value of a hash field, only if the field does not exist

HSTRLEN

HSTRLEN key field

Enter fullscreen mode Exit fullscreen mode

Example

redis> HMSET myhash f1 HelloWorld f2 99 f3 -256
"OK"
redis> HSTRLEN myhash f1
(integer) 10
redis> HSTRLEN myhash f2
(integer) 2
redis> HSTRLEN myhash f3
(integer) 4

Enter fullscreen mode Exit fullscreen mode

Get the length of the value of a hash field

HVALS

HVALS key

Enter fullscreen mode Exit fullscreen mode

Example

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HVALS myhash
1) "Hello"
2) "World"

Enter fullscreen mode Exit fullscreen mode

Get all the values in a hash

Redis Sorted set command

BZPOPMIN

BZPOPMIN key [key ...] timeout

Enter fullscreen mode Exit fullscreen mode

Example

redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMIN zset1 zset2 0
1) "zset1"
2) "a"
3) "0"

Enter fullscreen mode Exit fullscreen mode

Remove and return the member with the lowest score from one or more sorted sets, or block until one is available

BZPOPMAX

BZPOPMAX key [key ...] timeout

Enter fullscreen mode Exit fullscreen mode

Example

redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMAX zset1 zset2 0
1) "zset1"
2) "c"
3) "2"

Enter fullscreen mode Exit fullscreen mode

Remove and return the member with the highest score from one or more sorted sets, or block until one is available

ZADD

ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "uno"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "uno"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"

Enter fullscreen mode Exit fullscreen mode

Add one or more members to a sorted set, or update its score if it already exists

ZCARD

ZCARD key

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Get the number of members in a sorted set

ZSCORE

ZSCORE key member

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZSCORE myzset "one"
"1"

Enter fullscreen mode Exit fullscreen mode

Get the score associated with the given member in a sorted set

ZCOUNT

ZCOUNT key min max

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZCOUNT myzset -inf +inf
(integer) 3
redis> ZCOUNT myzset (1 3
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Count the members in a sorted set with scores within the given values

ZDIFF

ZDIFF numkeys key [key ...] [WITHSCORES]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset1 3 "three"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZDIFF 2 zset1 zset2
1) "three"
redis> ZDIFF 2 zset1 zset2 WITHSCORES
1) "three"
2) "3"

Enter fullscreen mode Exit fullscreen mode

Subtract multiple sorted sets

ZDIFFSTORE

ZDIFFSTORE destination numkeys key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset1 3 "three"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZDIFFSTORE out 2 zset1 zset2
(integer) 1
redis> ZRANGE out 0 -1 WITHSCORES
1) "three"
2) "3"

Enter fullscreen mode Exit fullscreen mode

Subtract multiple sorted sets and store the resulting sorted set in a new key

ZINCRBY

ZINCRBY key increment member

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZINCRBY myzset 2 "one"
"3"
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "one"
4) "3"

Enter fullscreen mode Exit fullscreen mode

Increment the score of a member in a sorted set

ZINTER

ZINTER numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTER 2 zset1 zset2
1) "one"
2) "two"
redis> ZINTER 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "two"
4) "4"

Enter fullscreen mode Exit fullscreen mode

Intersect multiple sorted sets

ZINTERSTORE

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 2
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "two"
4) "10"

Enter fullscreen mode Exit fullscreen mode

Intersect multiple sorted sets and store the resulting sorted set in a new key

ZLEXCOUNT

ZLEXCOUNT key min max

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e
(integer) 5
redis> ZADD myzset 0 f 0 g
(integer) 2
redis> ZLEXCOUNT myzset - +
(integer) 7
redis> ZLEXCOUNT myzset [b [f
(integer) 5

Enter fullscreen mode Exit fullscreen mode

Count the number of members in a sorted set between a given lexicographical range

ZPOPMAX

ZPOPMAX key [count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMAX myzset
1) "three"
2) "3"

Enter fullscreen mode Exit fullscreen mode

Remove and return members with the highest scores in a sorted set

ZPOPMIN

ZPOPMIN key [count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMIN myzset
1) "one"
2) "1"

Enter fullscreen mode Exit fullscreen mode

Remove and return members with the lowest scores in a sorted set

ZRANGE

ZRANGE key start stop [WITHSCORES]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGE myzset 0 -1
1) "one"
2) "two"
3) "three"
redis> ZRANGE myzset 2 3
1) "three"
redis> ZRANGE myzset -2 -1
1) "two"
2) "three"

Enter fullscreen mode Exit fullscreen mode

Return a range of members in a sorted set, by index

ZRANGEBYLEX

ZRANGEBYLEX key min max [LIMIT offset count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
(integer) 7
redis> ZRANGEBYLEX myzset - [c
1) "a"
2) "b"
3) "c"
redis> ZRANGEBYLEX myzset - (c
1) "a"
2) "b"
redis> ZRANGEBYLEX myzset [aaa (g
1) "b"
2) "c"
3) "d"
4) "e"
5) "f"

Enter fullscreen mode Exit fullscreen mode

Return a range of members in a sorted set, by lexicographical range

ZREVRANGEBYLEX

ZREVRANGEBYLEX key max min [LIMIT offset count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
(integer) 7
redis> ZREVRANGEBYLEX myzset [c -
1) "c"
2) "b"
3) "a"
redis> ZREVRANGEBYLEX myzset (c -
1) "b"
2) "a"
redis> ZREVRANGEBYLEX myzset (g [aaa
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"

Enter fullscreen mode Exit fullscreen mode

Return a range of members in a sorted set, by lexicographical range, ordered from higher to lower strings.

ZRANGEBYSCORE

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGEBYSCORE myzset -inf +inf
1) "one"
2) "two"
3) "three"
redis> ZRANGEBYSCORE myzset 1 2
1) "one"
2) "two"
redis> ZRANGEBYSCORE myzset (1 2
1) "two"
redis> ZRANGEBYSCORE myzset (1 (2
(empty list or set)

Enter fullscreen mode Exit fullscreen mode

Return a range of members in a sorted set, by score

ZRANK

ZRANK key member

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANK myzset "three"
(integer) 2
redis> ZRANK myzset "four"
(nil)

Enter fullscreen mode Exit fullscreen mode

Determine the index of a member in a sorted set

ZREM

ZREM key member [member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREM myzset "two"
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "three"
4) "3"

Enter fullscreen mode Exit fullscreen mode

Remove one or more members from a sorted set

ZREMRANGEBYLEX

ZREMRANGEBYLEX key min max

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 0 aaaa 0 b 0 c 0 d 0 e
(integer) 5
redis> ZADD myzset 0 foo 0 zap 0 zip 0 ALPHA 0 alpha
(integer) 5
redis> ZRANGE myzset 0 -1
1) "ALPHA"
 2) "aaaa"
 3) "alpha"
 4) "b"
 5) "c"
 6) "d"
 7) "e"
 8) "foo"
 9) "zap"
10) "zip"
redis> ZREMRANGEBYLEX myzset [alpha [omega
(integer) 6
redis> ZRANGE myzset 0 -1
1) "ALPHA"
2) "aaaa"
3) "zap"
4) "zip"

Enter fullscreen mode Exit fullscreen mode

Remove all members in a sorted set between the given lexicographical range

ZREMRANGEBYRANK

ZREMRANGEBYRANK key start stop

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREMRANGEBYRANK myzset 0 1
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "three"
2) "3"

Enter fullscreen mode Exit fullscreen mode

Remove all members in a sorted set within the given indexes

ZREMRANGEBYSCORE

ZREMRANGEBYSCORE key min max

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREMRANGEBYSCORE myzset -inf (2
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "three"
4) "3"

Enter fullscreen mode Exit fullscreen mode

Remove all members in a sorted set within the given scores

ZREVRANGE

ZREVRANGE key start stop [WITHSCORES]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGE myzset 0 -1
1) "three"
2) "two"
3) "one"
redis> ZREVRANGE myzset 2 3
1) "one"
redis> ZREVRANGE myzset -2 -1
1) "two"
2) "one"

Enter fullscreen mode Exit fullscreen mode

Return a range of members in a sorted set, by index, with scores ordered from high to low

ZREVRANGEBYSCORE

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGEBYSCORE myzset +inf -inf
1) "three"
2) "two"
3) "one"
redis> ZREVRANGEBYSCORE myzset 2 1
1) "two"
2) "one"
redis> ZREVRANGEBYSCORE myzset 2 (1
1) "two"
redis> ZREVRANGEBYSCORE myzset (2 (1
(empty list or set)

Enter fullscreen mode Exit fullscreen mode

Return a range of members in a sorted set, by score, with scores ordered from high to low

ZREVRANK

ZREVRANK key member

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANK myzset "one"
(integer) 2
redis> ZREVRANK myzset "four"
(nil)

Enter fullscreen mode Exit fullscreen mode

Determine the index of a member in a sorted set, with scores ordered from high to low

ZUNION

ZUNION numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNION 2 zset1 zset2
1) "one"
2) "three"
3) "two"
redis> ZUNION 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "three"
4) "3"
5) "two"
6) "4"

Enter fullscreen mode Exit fullscreen mode

Add multiple sorted sets

ZMSCORE

ZMSCORE key member [member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZMSCORE myzset "one" "two" "nofield"
1) "1"
2) "2"
3) (nil)

Enter fullscreen mode Exit fullscreen mode

Get the score associated with the given members in a sorted set

ZUNIONSTORE

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

Enter fullscreen mode Exit fullscreen mode

Example

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 3
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "three"
4) "9"
5) "two"
6) "10"

Enter fullscreen mode Exit fullscreen mode

Add multiple sorted sets and store the resulting sorted set in a new key

Redis Geo command

GEOADD

GEOADD key longitude latitude member [longitude latitude member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEORADIUS Sicily 15 37 100 km
1) "Catania"
redis> GEORADIUS Sicily 15 37 200 km
1) "Palermo"
2) "Catania"

Enter fullscreen mode Exit fullscreen mode

Add one or more geospatial items in the geospatial index represented using a sorted set

GEOHASH

GEOHASH key member [member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOHASH Sicily Palermo Catania
1) "sqc8b49rny0"
2) "sqdtr74hyu0"

Enter fullscreen mode Exit fullscreen mode

Returns members of a geospatial index as standard geohash strings

GEOPOS

GEOPOS key member [member ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOPOS Sicily Palermo Catania NonExisting
1) 1) "13.36138933897018433"
   2) "38.11555639549629859"
2) 1) "15.08726745843887329"
   2) "37.50266842333162032"
3) (nil)

Enter fullscreen mode Exit fullscreen mode

Returns longitude and latitude of members of a geospatial index

GEODIST

GEODIST key member1 member2 [m|km|ft|mi]

Enter fullscreen mode Exit fullscreen mode

Example

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEODIST Sicily Palermo Catania km
"166.2742"
redis> GEODIST Sicily Palermo Catania mi
"103.3182"
redis> GEODIST Sicily Foo Bar
(nil)

Enter fullscreen mode Exit fullscreen mode

Returns the distance between two members of a geospatial index

GEORADIUS

GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

Enter fullscreen mode Exit fullscreen mode

Example

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUS Sicily 15 37 200 km WITHDIST
1) 1) "Palermo"
   2) "190.4424"
2) 1) "Catania"
   2) "56.4413"
redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
1) 1) "Palermo"
   2) 1) "13.36138933897018433"
      2) "38.11555639549629859"
2) 1) "Catania"
   2) 1) "15.08726745843887329"
      2) "37.50266842333162032"
redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
1) 1) "Palermo"
   2) "190.4424"
   3) 1) "13.36138933897018433"
      2) "38.11555639549629859"
2) 1) "Catania"
   2) "56.4413"
   3) 1) "15.08726745843887329"
      2) "37.50266842333162032"

Enter fullscreen mode Exit fullscreen mode

Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a point

GEORADIUSBYMEMBER

GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

Enter fullscreen mode Exit fullscreen mode

Example

redis> GEOADD Sicily 13.583333 37.316667 "Agrigento"
(integer) 1
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km
1) "Agrigento"
2) "Palermo"

Enter fullscreen mode Exit fullscreen mode

Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a member

GEOSEARCH

GEOSEARCH key [FROMMEMBER member] [FROMLONLAT longitude latitude] [BYRADIUS radius m|km|ft|mi] [BYBOX width height m|km|ft|mi] [ASC|DESC] [COUNT count] [WITHCOORD] [WITHDIST] [WITHHASH]

Enter fullscreen mode Exit fullscreen mode

Example

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOADD Sicily 12.758489 38.788135 "edge1"   17.241510 38.788135 "edge2"
(integer) 2
redis> GEOSEARCH Sicily FROMLONLAT 15 37 BYRADIUS 200 km ASC
1) "Catania"
2) "Palermo"
redis> GEOSEARCH Sicily FROMLONLAT 15 37 BYBOX 400 400 km ASC
1) "Catania"
2) "Palermo"
3) "edge2"
4) "edge1"

Enter fullscreen mode Exit fullscreen mode

Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle.

Misc

  • -: GEOSEARCHSTORE
    • -: 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.

Redis Hyperloglog command

PFADD

PFADD key element [element ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> PFADD hll a b c d e f g
(integer) 1
redis> PFCOUNT hll
(integer) 7

Enter fullscreen mode Exit fullscreen mode

Adds the specified elements to the specified HyperLogLog.

PFCOUNT

PFCOUNT key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> PFADD hll foo bar zap
(integer) 1
redis> PFADD hll zap zap zap
(integer) 0
redis> PFADD hll foo bar
(integer) 0
redis> PFCOUNT hll
(integer) 3
redis> PFADD some-other-hll 1 2 3
(integer) 1
redis> PFCOUNT hll some-other-hll
(integer) 6

Enter fullscreen mode Exit fullscreen mode

Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s).

PFMERGE

PFMERGE destkey sourcekey [sourcekey ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> PFADD hll1 foo bar zap a
(integer) 1
redis> PFADD hll2 a b c foo
(integer) 1
redis> PFMERGE hll3 hll1 hll2
"OK"
redis> PFCOUNT hll3
(integer) 6

Enter fullscreen mode Exit fullscreen mode

Merge N different HyperLogLogs into a single one.

Redis Server command

COMMAND

COMMAND

Enter fullscreen mode Exit fullscreen mode

Example

redis> COMMAND
1) 1) "georadius_ro"
     2) (integer) -6
     3) 1) "readonly"
        2) "movablekeys"
     4) (integer) 1
     5) (integer) 1
     6) (integer) 1
     7) 1) "@read"
        2) "@geo"
        3) "@slow"
  2) 1) "zpopmin"
     2) (integer) -2
     3) 1) "write"
        2) "fast"
  ........

Enter fullscreen mode Exit fullscreen mode

Get array of Redis command details

Misc

  • -: ACL LOAD
    • -: Reload the ACLs from the configured ACL file
  • -: ACL SAVE
    • -: Save the current ACL rules in the configured ACL file
  • -: ACL LIST
    • -: List the current ACL rules in ACL config file format
  • -: ACL USERS
    • -: List the username of all the configured ACL rules
  • -: ACL GETUSER
    • -: Get the rules for a specific ACL user
  • -: ACL SETUSER
    • -: Modify or create the rules for a specific ACL user
  • -: ACL DELUSER
    • -: Remove the specified ACL users and the associated rules
  • -: ACL CAT
    • -: List the ACL categories or the commands inside a category
  • -: ACL GENPASS
    • -: Generate a pseudorandom secure password to use for ACL users
  • -: ACL WHOAMI
    • -: Return the name of the user associated to the current connection
  • -: ACL LOG
    • -: List latest events denied because of ACLs in place
  • -: ACL HELP
    • -: Show helpful text about the different subcommands
  • -: BGREWRITEAOF
    • -: Asynchronously rewrite the append-only file
  • -: BGSAVE
    • -: Asynchronously save the dataset to disk
  • -: CONFIG GET
    • -: Get the value of a configuration parameter
  • -: CONFIG REWRITE
    • -: Rewrite the configuration file with the in memory configuration
  • -: CONFIG SET
    • -: Set a configuration parameter to the given value
  • -: CONFIG RESETSTAT
    • -: Reset the stats returned by INFO
  • -: DBSIZE
    • -: Return the number of keys in the selected database
  • -: DEBUG OBJECT
    • -: Get debugging information about a key
  • -: DEBUG SEGFAULT
    • -: Make the server crash
  • -: FLUSHALL
    • -: Remove all keys from all databases
  • -: FLUSHDB
    • -: Remove all keys from the current database
  • -: LOLWUT
    • -: Display some computer art and the Redis version
  • -: LASTSAVE
    • -: Get the UNIX time stamp of the last successful save to disk
  • -: MEMORY DOCTOR
    • -: Outputs memory problems report
  • -: MEMORY HELP
    • -: Show helpful text about the different subcommands
  • -: MEMORY MALLOC-STATS
    • -: Show allocator internal stats
  • -: MEMORY PURGE
    • -: Ask the allocator to release memory
  • -: MEMORY STATS
    • -: Show memory usage details
  • -: MEMORY USAGE
    • -: Estimate the memory usage of a key
  • -: MODULE LIST
    • -: List all modules loaded by the server
  • -: MODULE LOAD
    • -: Load a module
  • -: MODULE UNLOAD
    • -: Unload a module
  • -: MONITOR
    • -: Listen for all requests received by the server in real time
  • -: SAVE
    • -: Synchronously save the dataset to disk
  • -: SHUTDOWN
    • -: Synchronously save the dataset to disk and then shut down the server
  • -: SLAVEOF
    • -: Make the server a replica of another instance, or promote it as master. Deprecated starting with Redis 5. Use REPLICAOF instead.
  • -: REPLICAOF
    • -: Make the server a replica of another instance, or promote it as master.
  • -: SLOWLOG
    • -: Manages the Redis slow queries log
  • -: SWAPDB
    • -: Swaps two Redis databases
  • -: SYNC
    • -: Internal command used for replication
  • -: PSYNC
    • -: Internal command used for replication
  • -: LATENCY DOCTOR
    • -: Return a human readable latency analysis report.
  • -: LATENCY GRAPH
    • -: Return a latency graph for the event.
  • -: LATENCY HISTORY
    • -: Return timestamp-latency samples for the event.
  • -: LATENCY LATEST
    • -: Return the latest latency samples for all events.
  • -: LATENCY RESET
    • -: Reset latency data for one or more events.
  • -: LATENCY HELP
    • -: Show helpful text about the different subcommands.

COMMAND COUNT

COMMAND COUNT

Enter fullscreen mode Exit fullscreen mode

Example

redis> COMMAND COUNT
(integer) 217

Enter fullscreen mode Exit fullscreen mode

Get total number of Redis commands

COMMAND GETKEYS

COMMAND GETKEYS

Enter fullscreen mode Exit fullscreen mode

Example

redis> COMMAND GETKEYS MSET a b c d e f
1) "a"
2) "c"
3) "e"
redis> COMMAND GETKEYS EVAL "not consulted" 3 key1 key2 key3 arg1 arg2 arg3 argN
1) "key1"
2) "key2"
3) "key3"
redis> COMMAND GETKEYS SORT mylist ALPHA STORE outlist
1) "mylist"
2) "outlist"

Enter fullscreen mode Exit fullscreen mode

Extract keys given a full Redis command

COMMAND INFO

COMMAND INFO command-name [command-name ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> COMMAND INFO get set eval
1) 1) "get"
   2) (integer) 2
   3) 1) "readonly"
      2) "fast"
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
   7) 1) "@read"
      2) "@string"
      3) "@fast"
2) 1) "set"
   2) (integer) -3
   3) 1) "write"
      2) "denyoom"
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
   7) 1) "@write"
      2) "@string"
      3) "@slow"
3) 1) "eval"
   2) (integer) -3
   3) 1) "noscript"
      2) "movablekeys"
   4) (integer) 0
   5) (integer) 0
   6) (integer) 0
   7) 1) "@slow"
      2) "@scripting"

Enter fullscreen mode Exit fullscreen mode

Get array of specific Redis command details

INFO

INFO [section]

Enter fullscreen mode Exit fullscreen mode

Example

redis> INFO
# Server
redis_version:6.1.240
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:a26db646ea64a07c
redis_mode:standalone
os:Linux 5.4.0-1017-aws x86_64
......

Enter fullscreen mode Exit fullscreen mode

Get information and statistics about the server

ROLE

ROLE

Enter fullscreen mode Exit fullscreen mode

Example

redis> ROLE
1) "master"
2) (integer) 0
3) (empty list or set)

Enter fullscreen mode Exit fullscreen mode

Return the role of the instance in the context of replication

TIME

TIME

Enter fullscreen mode Exit fullscreen mode

Example

redis> TIME
1) "1609040690"
2) "558952"
redis> TIME
1) "1609040690"
2) "559206"

Enter fullscreen mode Exit fullscreen mode

Return the current server time

Redis Generic command

Misc

  • -: COPY
    • -: Copy a key
  • -: MIGRATE
    • -: Atomically transfer a key from a Redis instance to another one.
  • -: MOVE
    • -: Move a key to another database
  • -: OBJECT
    • -: Inspect the internals of Redis objects
  • -: RESTORE
    • -: Create a key using the provided serialized value, previously obtained using DUMP.
  • -: SORT
    • -: Sort the elements in a list, set or sorted set
  • -: WAIT
    • -: Wait for the synchronous replication of all the write commands sent in the context of the current connection
  • -: SCAN
    • -: Incrementally iterate the keys space

DEL

DEL key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> DEL key1 key2 key3
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Delete a key

DUMP

DUMP key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey 10
"OK"
redis> DUMP mykey
"\u0000\xC0\n\t\u0000\xBEm\u0006\x89Z(\u0000\n"

Enter fullscreen mode Exit fullscreen mode

Return a serialized version of the value stored at the specified key.

EXISTS

EXISTS key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "Hello"
"OK"
redis> EXISTS key1
(integer) 1
redis> EXISTS nosuchkey
(integer) 0
redis> SET key2 "World"
"OK"
redis> EXISTS key1 key2 nosuchkey
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Determine if a key exists

EXPIRE

EXPIRE key seconds

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> SET mykey "Hello World"
"OK"
redis> TTL mykey
(integer) -1

Enter fullscreen mode Exit fullscreen mode

Set a key's time to live in seconds

EXPIREAT

EXPIREAT key timestamp

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> EXISTS mykey
(integer) 1
redis> EXPIREAT mykey 1293840000
(integer) 1
redis> EXISTS mykey
(integer) 0

Enter fullscreen mode Exit fullscreen mode

Set the expiration for a key as a UNIX timestamp

KEYS

KEYS pattern

Enter fullscreen mode Exit fullscreen mode

Example

redis> MSET firstname Jack lastname Stuntman age 35
"OK"
redis> KEYS *name*
1) "firstname"
2) "lastname"
redis> KEYS a??
1) "age"
redis> KEYS *
1) "firstname"
2) "age"
3) "lastname"

Enter fullscreen mode Exit fullscreen mode

Find all keys matching the given pattern

PERSIST

PERSIST key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> PERSIST mykey
(integer) 1
redis> TTL mykey
(integer) -1

Enter fullscreen mode Exit fullscreen mode

Remove the expiration from a key

PEXPIRE

PEXPIRE key milliseconds

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> PEXPIRE mykey 1500
(integer) 1
redis> TTL mykey
(integer) 1
redis> PTTL mykey
(integer) 1499

Enter fullscreen mode Exit fullscreen mode

Set a key's time to live in milliseconds

PEXPIREAT

PEXPIREAT key milliseconds-timestamp

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> PEXPIREAT mykey 1555555555005
(integer) 1
redis> TTL mykey
(integer) -2
redis> PTTL mykey
(integer) -2

Enter fullscreen mode Exit fullscreen mode

Set the expiration for a key as a UNIX timestamp specified in milliseconds

PTTL

PTTL key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 1
(integer) 1
redis> PTTL mykey
(integer) 1000

Enter fullscreen mode Exit fullscreen mode

Get the time to live for a key in milliseconds

RENAME

RENAME key newkey

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> RENAME mykey myotherkey
"OK"
redis> GET myotherkey
"Hello"

Enter fullscreen mode Exit fullscreen mode

Rename a key

RENAMENX

RENAMENX key newkey

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> SET myotherkey "World"
"OK"
redis> RENAMENX mykey myotherkey
(integer) 0
redis> GET myotherkey
"World"

Enter fullscreen mode Exit fullscreen mode

Rename a key, only if the new key does not exist

TOUCH

TOUCH key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> TOUCH key1 key2
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Alters the last access time of a key(s). Returns the number of existing keys specified.

TTL

TTL key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10

Enter fullscreen mode Exit fullscreen mode

Get the time to live for a key

TYPE

TYPE key

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "value"
"OK"
redis> LPUSH key2 "value"
(integer) 1
redis> SADD key3 "value"
(integer) 1
redis> TYPE key1
"string"
redis> TYPE key2
"list"
redis> TYPE key3
"set"

Enter fullscreen mode Exit fullscreen mode

Determine the type stored at key

UNLINK

UNLINK key [key ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> UNLINK key1 key2 key3
(integer) 2

Enter fullscreen mode Exit fullscreen mode

Delete a key asynchronously in another thread. Otherwise it is just as DEL, but non blocking.

Redis Connection command

Misc

- -
AUTH Authenticate to the server
CLIENT CACHING Instruct the server about tracking or not keys in the next request
CLIENT KILL Kill the connection of a client
CLIENT LIST Get the list of client connections
CLIENT GETNAME Get the current connection name
CLIENT GETREDIR Get tracking notifications redirection client ID if any
CLIENT PAUSE Stop processing commands from clients for some time
CLIENT REPLY Instruct the server whether to reply to commands
CLIENT SETNAME Set the current connection name
CLIENT TRACKING Enable or disable server assisted client side caching support
CLIENT UNBLOCK Unblock a client blocked in a blocking command from a different connection
HELLO switch Redis protocol
QUIT Close the connection
RESET Reset the connection
SELECT Change the selected database for the current connection

CLIENT ID

CLIENT ID

Enter fullscreen mode Exit fullscreen mode

Example

redis> CLIENT ID
ERR Unknown or disabled command 'CLIENT'

Enter fullscreen mode Exit fullscreen mode

Returns the client ID for the current connection

CLIENT INFO

CLIENT INFO

Enter fullscreen mode Exit fullscreen mode

Example

redis> CLIENT INFO
"id=55542 addr=127.0.0.1:58710 laddr=127.0.0.1:6379 fd=8 name= age=114920 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1\n"

Enter fullscreen mode Exit fullscreen mode

Returns information about the current client connection.

ECHO

ECHO message

Enter fullscreen mode Exit fullscreen mode

Example

redis> ECHO "Hello World!"
"Hello World!"

Enter fullscreen mode Exit fullscreen mode

Echo the given string

PING

PING [message]

Enter fullscreen mode Exit fullscreen mode

Example

redis> PING
"PONG"
redis> PING "hello world"
"hello world"

Enter fullscreen mode Exit fullscreen mode

Ping the server

Redis Stream command

Misc

  • -: XINFO
    • -: Get information on streams and consumer groups
  • -: XDEL
    • -: 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.
  • -: XREAD
    • -: Return never seen elements in multiple streams, with IDs greater than the ones reported by the caller for each stream. Can block.
  • -: XGROUP
    • -: Create, destroy, and manage consumer groups.
  • -: XREADGROUP
    • -: Return new entries from a stream using a consumer group, or access the history of the pending entries for a given consumer. Can block.
  • -: XCLAIM
    • -: Changes (or acquires) ownership of a message in a consumer group, as if the message was delivered to the specified consumer.
  • -: XPENDING
    • -: Return information and entries from a stream consumer group pending entries list, that are messages fetched but never acknowledged.

XADD

XADD key [MAXLEN [=|~] length] [NOMKSTREAM] *|ID field value [field value ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> XADD mystream * name Sara surname OConnor
"1609040574632-0"
redis> XADD mystream * field1 value1 field2 value2 field3 value3
"1609040574632-1"
redis> XLEN mystream
(integer) 2
redis> XRANGE mystream - +
1) 1) "1609040574632-0"
   2) 1) "name"
      2) "Sara"
      3) "surname"
      4) "OConnor"
2) 1) "1609040574632-1"
   2) 1) "field1"
      2) "value1"
      3) "field2"
      4) "value2"
      5) "field3"
      6) "value3"

Enter fullscreen mode Exit fullscreen mode

Appends a new entry to a stream

XTRIM

XTRIM key MAXLEN [=|~] length

Enter fullscreen mode Exit fullscreen mode

Example

redis> XADD mystream * field1 A field2 B field3 C field4 D
"1609040575750-0"
redis> XTRIM mystream MAXLEN 2
(integer) 0
redis> XRANGE mystream - +
1) 1) "1609040575750-0"
   2) 1) "field1"
      2) "A"
      3) "field2"
      4) "B"
      5) "field3"
      6) "C"
      7) "field4"
      8) "D"

Enter fullscreen mode Exit fullscreen mode

Trims the stream to (approximately if '~' is passed) a certain size

XRANGE

XRANGE key start end [COUNT count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> XADD writers * name Virginia surname Woolf
"1609040578002-0"
redis> XADD writers * name Jane surname Austen
"1609040578002-1"
redis> XADD writers * name Toni surname Morrison
"1609040578003-0"
redis> XADD writers * name Agatha surname Christie
"1609040578003-1"
redis> XADD writers * name Ngozi surname Adichie
"1609040578003-2"
redis> XLEN writers
(integer) 5
redis> XRANGE writers - + COUNT 2
1) 1) "1609040578002-0"
   2) 1) "name"
      2) "Virginia"
      3) "surname"
      4) "Woolf"
2) 1) "1609040578002-1"
   2) 1) "name"
      2) "Jane"
      3) "surname"
      4) "Austen"

Enter fullscreen mode Exit fullscreen mode

Return a range of elements in a stream, with IDs matching the specified IDs interval

XREVRANGE

XREVRANGE key end start [COUNT count]

Enter fullscreen mode Exit fullscreen mode

Example

redis> XADD writers * name Virginia surname Woolf
"1609040579130-0"
redis> XADD writers * name Jane surname Austen
"1609040579130-1"
redis> XADD writers * name Toni surname Morrison
"1609040579130-2"
redis> XADD writers * name Agatha surname Christie
"1609040579131-0"
redis> XADD writers * name Ngozi surname Adichie
"1609040579131-1"
redis> XLEN writers
(integer) 5
redis> XREVRANGE writers + - COUNT 1
1) 1) "1609040579131-1"
   2) 1) "name"
      2) "Ngozi"
      3) "surname"
      4) "Adichie"

Enter fullscreen mode Exit fullscreen mode

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

XLEN

XLEN key

Enter fullscreen mode Exit fullscreen mode

Example

redis> XADD mystream * item 1
"1609040580250-0"
redis> XADD mystream * item 2
"1609040580250-1"
redis> XADD mystream * item 3
"1609040580251-0"
redis> XLEN mystream
(integer) 3

Enter fullscreen mode Exit fullscreen mode

Return the number of entries in a stream

XACK

XACK key group ID [ID ...]

Enter fullscreen mode Exit fullscreen mode

Example

redis> XACK mystream mygroup 1526569495631-0
ERR Unknown or disabled command 'XACK'

Enter fullscreen mode Exit fullscreen mode

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.

Miscellaneous

Cluster

Transactions

- -
DISCARD Discard all commands issued after MULTI
EXEC Execute all commands issued after MULTI
MULTI Mark the start of a transaction block
UNWATCH Forget about all watched keys
WATCH Watch the given keys to determine execution of the MULTI/EXEC block

Scripting

- -
EVAL Execute a Lua script server side
EVALSHA Execute a Lua script server side
SCRIPT DEBUG Set the debug mode for executed scripts.
SCRIPT EXISTS Check existence of scripts in the script cache.
SCRIPT FLUSH Remove all the scripts from the script cache.
SCRIPT KILL Kill the script currently in execution.
SCRIPT LOAD Load the specified Lua script into the script cache.

Pubsub

- -
PSUBSCRIBE Listen for messages published to channels matching the given patterns
PUBSUB Inspect the state of the Pub/Sub subsystem
PUBLISH Post a message to a channel
PUNSUBSCRIBE Stop listening for messages posted to channels matching the given patterns
SUBSCRIBE Listen for messages published to the given channels
UNSUBSCRIBE Stop listening for messages posted to the given channels

Top comments (0)