Some links in this article are affiliate links. We earn a commission at no extra cost to you when you purchase through them. Full disclosure.
Click any item to expand the explanation and examples. New to Redis? Start with what is Redis or compare caching options in Redis vs Memcached.
π Connection
redis-cli connect
redis-cli # Connect to localhost:6379
redis-cli -h myhost -p 6380 # Custom host/port
redis-cli -a mypassword # With password
redis-cli --tls # TLS connection
redis-cli ping # Test connection β PONG
redis-cli info # Server info
redis-cli monitor # Watch all commands in real-time
π Strings
SET / GET / DEL strings
SET name "Alice"
GET name # "Alice"
DEL name # Delete key
SETNX name "Bob" # Set only if not exists
MSET a 1 b 2 c 3 # Set multiple
MGET a b c # Get multiple
APPEND name " Smith" # Append to string
STRLEN name # String length
INCR / DECR (counters) strings
SET visits 0
INCR visits # 1
INCR visits # 2
INCRBY visits 10 # 12
DECR visits # 11
DECRBY visits 5 # 6
TTL / EXPIRE strings
SET session "abc123" EX 3600 # Expires in 3600 seconds
SET token "xyz" PX 60000 # Expires in 60000 milliseconds
EXPIRE key 300 # Set TTL on existing key
TTL key # Seconds remaining (-1 = no expiry, -2 = gone)
PERSIST key # Remove expiry
π Hashes
HSET / HGET / HGETALL hashes
Hashes are like objects/dictionaries β perfect for storing records.
HSET user:1 name "Alice" email "alice@example.com" age 30
HGET user:1 name # "Alice"
HGETALL user:1 # All fields and values
HMGET user:1 name email # Multiple fields
HDEL user:1 age # Delete a field
HEXISTS user:1 name # 1 (true)
HKEYS user:1 # All field names
HVALS user:1 # All values
HINCRBY user:1 age 1 # Increment numeric field
π Lists
LPUSH / RPUSH / LRANGE lists
Lists are ordered sequences β good for queues and recent items.
RPUSH queue "task1" "task2" # Push to right (end)
LPUSH queue "task0" # Push to left (front)
LRANGE queue 0 -1 # Get all items
LRANGE queue 0 9 # First 10 items
LPOP queue # Pop from left
RPOP queue # Pop from right
LLEN queue # Length
LINDEX queue 0 # Get by index
π― Sets & Sorted Sets
SADD / SMEMBERS / SINTER sets
Sets are unordered collections of unique values.
SADD tags "python" "redis" "docker"
SMEMBERS tags # All members
SISMEMBER tags "python" # 1 (true)
SCARD tags # Count
SREM tags "docker" # Remove
SINTER set1 set2 # Intersection
SUNION set1 set2 # Union
SDIFF set1 set2 # Difference
ZADD / ZRANGE (sorted sets) sorted-sets
Sorted sets have a score for ordering β perfect for leaderboards and rankings.
ZADD leaderboard 100 "alice" 85 "bob" 92 "charlie"
ZRANGE leaderboard 0 -1 WITHSCORES # Ascending
ZREVRANGE leaderboard 0 2 WITHSCORES # Top 3
ZSCORE leaderboard "alice" # 100
ZINCRBY leaderboard 5 "bob" # Add 5 to bob's score
ZRANK leaderboard "alice" # Rank (0-based)
ZCOUNT leaderboard 90 100 # Count in score range
π Key Management
KEYS / SCAN / TYPE keys
KEYS user:* # Find keys (DON'T use in production β blocks)
SCAN 0 MATCH user:* COUNT 100 # Safe iteration
TYPE mykey # String, list, set, hash, zset
EXISTS mykey # 1 or 0
RENAME oldkey newkey
DBSIZE # Total key count
FLUSHDB # Delete all keys in current DB
π‘ Pub/Sub
SUBSCRIBE / PUBLISH pubsub
# Terminal 1: Subscribe
SUBSCRIBE notifications
# Terminal 2: Publish
PUBLISH notifications "New order received"
# Pattern subscribe
PSUBSCRIBE user:* # Match user:login, user:logout, etc.
See also: Docker cheat sheet | PostgreSQL cheat sheet
Quick access: Raycast lets you search commands, snippets, and cheat sheets instantly from your keyboard. Free for Mac.
Related: What is Redis Β· PostgreSQL Cheat Sheet