Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
Wardn HubTrusted MCP server directory.

Registry

  • MCP Servers
  • Skills
  • Categories

Resources

  • API docs
  • Score method

Contribute

  • Submit server
  • Advertise
© 2026 Wardn Hub
Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
skills/sickn33/agentic-awesome-skills/redis-cli

redis-cli

1
sickn33/agentic-awesome-skills·Command Line·Audit passed·Snapshot 1d354928171e
Installs
3

Summary

Redis command-line interface (redis-cli) reference and usage guide. Use this skill whenever the user mentions redis-cli, Redis CLI, or any task involving querying, inspecting, debugging, or managing Redis from the command line. Triggers on key/value reads and writes, SCAN or keyspace...

SKILL.md

redis-cli — Redis Command Line Interface

When to Use

Use this skill when you need redis command-line interface (redis-cli) reference and usage guide. Use this skill whenever the user mentions redis-cli, Redis CLI, or any task involving querying, inspecting, debugging, or managing Redis from the command line. Triggers on key/value reads and writes, SCAN or keyspace...

redis-cli is the primary command-line tool for interacting with Redis. It supports two modes: command-line execution (run a command and exit) and interactive mode (a REPL with tab completion, history, and hints). It also provides special modes for monitoring, latency analysis, key space scanning, and data import/export.

Official resources: Redis CLI Docs | Commands | Download

Prerequisites

# Check if redis-cli is installed
redis-cli --version

# Install options:

# macOS (Homebrew)
brew install redis

# Ubuntu / Debian
sudo apt install redis-tools

# CentOS / RHEL
sudo yum install redis

# Alpine
apk add redis

# Build from source (binary only)
make redis-cli
# Binary at: src/redis-cli

# Docker (no installation needed)
docker run -it --rm redis redis-cli -h <host> -p <port> PING

Security Considerations

IMPORTANT: Redis provides powerful operations that can irreversibly modify or delete data. Pay close attention to the following safety guidelines:

  • Never pass passwords via -a in production — visible in shell history and process listings. Use REDISCLI_AUTH environment variable instead.
  • KEYS * blocks the server on large databases — always use in production code.
SCAN
  • MONITOR logs all commands including sensitive data — use cautiously, and never for extended periods on production servers.
  • FLUSHALL / FLUSHDB are irreversible — verify target database with CLIENT LIST or INFO keyspace first.
  • --rdb transfer during write operations may produce inconsistent snapshots on busy servers.
  • Quick Reference

    Connection

    # Basic connection (default: 127.0.0.1:6379)
    redis-cli
    redis-cli -h redis15.localnet.org -p 6390 PING
    
    # With password (prefer REDISCLI_AUTH env var for security)
    redis-cli -a myUnguessablePazzzzzword123 PING
    
    # URI connection
    redis-cli -u redis://user:password@host:port/dbnum PING
    
    # TLS
    redis-cli --tls --cacert /path/to/ca.crt -h redis.example.com PING
    
    # Specific database
    redis-cli -n 2 DBSIZE
    
    # IPv4/IPv6 preference
    redis-cli -4 PING   # prefer IPv4
    redis-cli -6 PING   # prefer IPv6
    

    Command-Line vs Interactive Mode

    # Command-line mode: execute one command and exit
    redis-cli INCR mycounter
    redis-cli GET mykey
    
    # Interactive mode: type commands at the prompt
    redis-cli
    127.0.0.1:6379> PING
    PONG
    127.0.0.1:6379> SELECT 2
    OK
    127.0.0.1:6379[2]> DBSIZE
    (integer) 1
    

    The prompt shows host:port[db]. Use CONNECT <host> <port> to switch instances interactively.

    Data Query Cheat Sheet

    String operations (O(1)):

    GET key                        # Get value
    SET key value [NX|XX] [EX sec|PX ms|KEEPTTL]  # Set with conditions/TTL
    SET key value GET              # Set new, return old value
    GETSET key newvalue            # [Use SET key value GET instead]
    MGET key1 key2 ...             # Get multiple values
    INCR key                       # Increment integer (+1)
    INCRBY key 10                  # Increment by amount
    STRLEN key                     # String length
    GETRANGE key 0 50              # Substring
    

    Hash operations:

    HGET key field                 # Get field value            O(1)
    HMGET key f1 f2                # Get multiple fields        O(N)
    HGETALL key                    # Get all fields/values      O(N)
    HKEYS key                      # Get all field names        O(N)
    HLEN key                       # Number of fields           O(1)
    HEXISTS key field              # Check field exists         O(1)
    HSCAN key 0 [MATCH pat]        # Iterate hash fields        O(1) per call
    

    List operations:

    LRANGE key 0 -1                # Get all elements           O(N)
    LLEN key                       # List length                O(1)
    LINDEX key 0                   # Get by index               O(N)
    LPOS key value                 # Find element position      O(N)
    

    Set operations:

    SMEMBERS key                   # Get all members            O(N)
    SCARD key                      # Set cardinality            O(1)
    SISMEMBER key member           # Check membership           O(1)
    SMISMEMBER key m1 m2           # Multi-membership check     O(N)
    SSCAN key 0 [MATCH pat]        # Iterate set members        O(1) per call
    

    Sorted Set operations:

    ZRANGE key 0 -1 [WITHSCORES]           # By index              O(log(N)+M)
    ZRANGE key -inf +inf BYSCORE           # By score range        O(log(N)+M)
    ZRANGE key [a [z BYLEX                 # By lexicographic      O(log(N)+M)
    ZCARD key                               # Member count          O(1)
    ZSCORE key member                       # Get score             O(1)
    ZRANK key member                        # Get rank              O(log(N))
    ZSCAN key 0 [MATCH pat]                 # Iterate members       O(1) per call
    

    Key inspection:

    EXISTS key [key ...]           # Check existence (O(N) for multi) — returns count
    TYPE key                       # Data type: string|list|set|zset|hash|stream  O(1)
    TTL key                        # Seconds until expiry (-1=none, -2=not exists)  O(1)
    PTTL key                       # Milliseconds until expiry                      O(1)
    MEMORY USAGE key [SAMPLES n]   # Memory consumption in bytes                    O(N)
    OBJECT ENCODING key            # Internal encoding (ziplist, hashtable, etc.)   O(1)
    OBJECT IDLETIME key            # Seconds since last access                      O(1)
    DBSIZE                         # Total keys in current database                 O(1)
    RANDOMKEY                      # Return a random key                            O(1)
    

    Key Scanning (Production-Safe)

    SCAN-based iteration never blocks the server, unlike KEYS * which should be avoided in production.

    # redis-cli built-in scan mode
    redis-cli --scan                          # List all keys
    redis-cli --scan --pattern 'user:*'       # Filter by pattern
    redis-cli --scan --pattern '*:12345*'     # Glob patterns
    redis-cli --scan --count 100              # Batch size hint
    
    # Programmatic SCAN in interactive mode
    SCAN 0 MATCH user:* COUNT 100
    # Returns: 1) next_cursor  2) [keys...]
    # Continue with: SCAN <next_cursor> MATCH user:* COUNT 100
    # Iteration complete when cursor returns 0
    
    # Count keys matching a pattern
    redis-cli --scan --pattern 'session:*' | wc -l
    

    SCAN guarantees: a full iteration (cursor 0 → cursor 0) always returns all elements that existed for the entire duration. Elements may appear multiple times — handle duplicates in your application.

    Server Inspection

    # Real-time stats (updates every second, use -i to change interval)
    redis-cli --stat
    
    # Server information
    redis-cli INFO server             # Server details
    redis-cli INFO memory             # Memory usage
    redis-cli INFO keyspace           # Database key counts
    redis-cli INFO replication        # Replication status
    redis-cli INFO all                # Everything
    
    # Key space analysis
    redis-cli --bigkeys               # Find largest keys by element count
    redis-cli --memkeys               # Find largest keys by memory usage
    redis-cli --keystats              # Combined bigkeys + memkeys with distribution
    
    # Latency analysis
    redis-cli --latency               # Continuous latency sampling
    redis-cli --latency-history       # Latency over time (15s windows)
    redis-cli --latency-dist          # Latency spectrum visualization
    redis-cli --intrinsic-latency 5   # System baseline latency (run on Redis host)
    

    Output Control

    # Raw output (no type prefixes) — default when piping
    redis-cli --raw GET mykey
    redis-cli GET mykey > /tmp/output.txt    # auto raw mode
    
    # Human-readable (force) when piping
    redis-cli --no-raw GET mykey | cat
    
    # CSV output
    redis-cli --csv LRANGE mylist 0 -1
    
    # JSON output (RESP3, use -2 for RESP2)
    redis-cli --json HGETALL user:1
    
    # Read last argument from stdin
    cat /etc/services | redis-cli -x SET net_services
    
    # Pipe commands from file
    cat /tmp/commands.txt | redis-cli
    

    Repeat Commands

    # Run command N times
    redis-cli -r 5 INCR counter
    
    # Run with delay (seconds, supports decimals)
    redis-cli -r -1 -i 1 INFO | grep rss_human    # infinite, every 1s
    
    # Interactive: prefix with count
    5 INCR mycounter    # runs 5 times
    

    Server Administration

    # ACL management
    redis-cli ACL LIST                                    # List all users
    redis-cli ACL SETUSER admin on >pwd ~* +@all          # Create admin user
    redis-cli ACL SETUSER readonly on >pwd ~* +@read      # Create read-only user
    redis-cli ACL DELUSER username                        # Delete user
    redis-cli ACL DRYRUN username GET key                 # Test user permission
    redis-cli ACL GENPASS                                 # Generate random password
    
    # Client management
    redis-cli CLIENT LIST                                 # List all connections
    redis-cli CLIENT KILL ADDR ip:port                    # Disconnect client
    redis-cli CLIENT PAUSE 5000 WRITE                     # Pause writes for 5s
    redis-cli CLIENT SETNAME my-app                       # Name current connection
    
    # Configuration
    redis-cli CONFIG GET maxmemory                        # Read config
    redis-cli CONFIG SET maxmemory 100mb                  # Set config at runtime
    redis-cli CONFIG REWRITE                              # Persist to redis.conf
    redis-cli CONFIG RESETSTAT                            # Reset INFO counters
    
    # Replication acknowledgment
    redis-cli WAIT 2 5000                                 # Wait for 2 replicas (5s timeout)
    redis-cli WAITAOF 1 1 5000                            # Wait for AOF fsync (Redis 7.2+)
    
    # Persistence
    redis-cli BGSAVE                                      # Background RDB save
    redis-cli BGREWRITEAOF                                # Background AOF rewrite
    redis-cli LASTSAVE                                    # Last save timestamp
    
    # Replication
    redis-cli REPLICAOF host port                         # Become replica
    redis-cli REPLICAOF NO ONE                            # Promote to master
    
    # Server lifecycle
    redis-cli SHUTDOWN SAVE                               # Save and stop
    redis-cli SHUTDOWN NOSAVE                             # Stop without saving
    
    # Slow log
    redis-cli SLOWLOG GET 10                              # Recent slow commands
    redis-cli SLOWLOG LEN                                 # Entry count
    redis-cli SLOWLOG RESET                               # Clear entries
    
    # Cluster management
    redis-cli --cluster check host:port                   # Check cluster health
    redis-cli --cluster reshard host:port                 # Move slots between nodes
    redis-cli -c -h cluster-node PING                     # Cluster-aware connection
    

    Detailed Reference Files

    FileContentWhen to read
    references/connection-and-options.mdFull connection options, CLI flags, SSL/TLS, environment variables, interactive mode features (completion, history, preferences), RESP protocol versionsConfiguring connections, setting up TLS, customizing CLI behavior
    references/data-query-commands.mdCore data type commands: Strings, Hashes, Lists, Sets, Sorted Sets, Streams, Bitmaps, HyperLogLog, Geospatial, plus Key Operations, Database Operations, and TransactionsLooking up core command syntax, understanding command options and return values
    references/module-data-types.mdModule data types: JSON (RedisJSON), Vector Sets (Redis 8.0+), Bloom Filter, Cuckoo Filter, Top-K, Count-Min Sketch, T-Digest, TimeSeries (TS.), Full-Text Search / RediSearch (FT.) — with full command syntax and behavioral notesWorking with Redis module data types, similarity search, probabilistic data structures, time series data, full-text search
    references/key-management.mdSCAN family details (SCAN/SSCAN/HSCAN/ZSCAN), big keys analysis (--bigkeys, --memkeys, --keystats), key expiration (EXPIRE, TTL, PERSIST), key space patterns, mass insertionScanning databases, analyzing key distribution, managing key lifecycles
    references/inspection-and-monitoring.mdINFO sections, MONITOR, --stat mode, latency tools (--latency, --latency-history, --latency-dist, --intrinsic-latency), RDB backup, replica mode, LRU simulationMonitoring Redis instances, debugging performance, creating backups
    references/advanced-features.mdLua scripting (--eval, --ldb), Pub/Sub mode, pipe mode, CSV/JSON output, string quoting and escaping, get input from stdin, remote RDB transfer, Cluster management (--cluster subcommands, cluster commands)Running scripts, subscribing to channels, bulk data operations, managing Redis Cluster
    references/server-administration.mdACL management (ACL SETUSER/DELUSER/LIST/CAT/GENPASS), client management (CLIENT LIST/KILL/PAUSE/TRACKING), configuration (CONFIG GET/SET/REWRITE), replication acknowledgment (WAIT/WAITAOF), persistence (SAVE/BGSAVE/BGREWRITEAOF), replication setup (REPLICAOF), server lifecycle (SHUTDOWN/FAILOVER)Managing users and permissions, controlling client connections, runtime configuration, ensuring write durability, persistence management, replication setup

    Common Workflows

    Explore an Unknown Database

    # Step 1: Basic stats
    redis-cli INFO keyspace
    redis-cli DBSIZE
    
    # Step 2: Find big keys and memory usage
    redis-cli --bigkeys
    redis-cli --memkeys
    
    # Step 3: Sample keys and inspect types
    redis-cli --scan | head -20
    redis-cli TYPE <key>
    redis-cli TTL <key>
    
    # Step 4: Read data based on type
    redis-cli HGETALL <hash_key>
    redis-cli LRANGE <list_key> 0 -1
    redis-cli ZRANGE <zset_key> 0 -1 WITHSCORES
    

    Monitor in Real Time

    # Live server stats
    redis-cli --stat -i 2
    
    # Watch memory specifically
    redis-cli -r -1 -i 5 INFO memory | grep used_memory_human
    
    # Monitor all commands (caution: high overhead)
    redis-cli MONITOR
    
    # Continuous latency
    redis-cli --latency-history -i 5
    

    Query Specific Key Patterns

    # Count keys by pattern
    redis-cli --scan --pattern 'session:*' | wc -l
    
    # Find and inspect hash keys
    redis-cli --scan --pattern 'user:*' | while read key; do
      echo "=== $key ==="
      redis-cli HGETALL "$key"
    done
    
    # Check TTL of matching keys
    redis-cli --scan --pattern 'cache:*' | while read key; do
      redis-cli TTL "$key"
    done
    

    External References

    • Redis CLI Documentation
    • Redis Commands
    • Redis Data Types
    • Redis Protocol Specification
    • Redis Mass Insertion
    • Redis Lua Debugger

    Limitations

    • Use this skill only when the task clearly matches its upstream source and local project context.
    • Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
    • Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.

    Related skills

    kubernetes-deploymentdeployment-engineergit-workflow-and-versioningkubernetes-architectpre-release-review