Redis 命令速查
本文档汇总 Redis 日常使用和运维排查中常见的命令示例。示例默认使用 redis-cli。
连接和基础检查
export REDIS_HOST=127.0.0.1
export REDIS_PORT=6379
export REDIS_PASSWORD=change-me
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" -a "$REDIS_PASSWORD" ping
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" -a "$REDIS_PASSWORD" info server
进入交互模式:
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" -a "$REDIS_PASSWORD"
Key 管理
EXISTS user:1
TYPE user:1
TTL user:1
EXPIRE user:1 3600
PERSIST user:1
DEL user:1
UNLINK user:1
生产环境避免直接执行 KEYS *,可以使用 SCAN 分批扫描:
SCAN 0 MATCH user:* COUNT 1000
String
SET user:1:name "alice"
GET user:1:name
SETEX session:token 3600 "token-value"
SET lock:order:1 "request-id" NX PX 30000
INCR counter:login
INCRBY counter:login 10
MGET key1 key2 key3
常见用途:缓存值、计数器、分布式锁 token、短期状态。
Hash
HSET user:1 name "alice" age 20
HGET user:1 name
HMGET user:1 name age
HGETALL user:1
HINCRBY user:1 score 1
HDEL user:1 age
Hash 适合存储对象字段,但字段过多时也可能形成大 key。
List
LPUSH queue:jobs job-1
RPUSH queue:jobs job-2
LPOP queue:jobs
RPOP queue:jobs
BRPOP queue:jobs 5
LLEN queue:jobs
LTRIM queue:jobs 0 999
List 常用于简单队列和固定长度列表。高可靠队列建议使用专业消息队列或 Redis Streams。
Set
SADD user:1:tags devops redis
SMEMBERS user:1:tags
SISMEMBER user:1:tags redis
SREM user:1:tags devops
SINTER group:a group:b
SUNION group:a group:b
SCARD user:1:tags
Set 适合去重集合、标签、交集和并集计算。
Sorted Set
ZADD rank:score 100 user:1 90 user:2
ZRANGE rank:score 0 9 WITHSCORES
ZREVRANGE rank:score 0 9 WITHSCORES
ZINCRBY rank:score 10 user:1
ZRANK rank:score user:1
ZREM rank:score user:2
Sorted Set 常用于排行榜、延迟队列和按分数排序的索引。
Stream
XADD stream:orders * order_id 1001 status created
XREAD COUNT 10 STREAMS stream:orders 0
XGROUP CREATE stream:orders group-a 0 MKSTREAM
XREADGROUP GROUP group-a consumer-1 COUNT 10 STREAMS stream:orders >
XACK stream:orders group-a 1700000000000-0
Stream 可以做轻量消息流,但要关注积压、消费组和历史消息裁剪。
运维排查
INFO
INFO memory
INFO clients
INFO replication
INFO persistence
DBSIZE
SLOWLOG GET 10
CLIENT LIST
CONFIG GET maxmemory
MEMORY USAGE key-name
OBJECT ENCODING key-name
查看实时命令:
MONITOR
MONITOR 会产生较大开销,只建议短时间在低峰期使用。