🔴

Redis 命令速查

Redis 常用命令速查:五大数据类型、过期内存、持久化与主从复制

🔍
70 条命令

🔌 连接与通用

redis-cli -h <主机> -p 6379 -a <密码>

连接实例;密码带特殊字符用单引号包住

示例redis-cli -h 10.0.0.6 -a "P@ss123"
redis-cli -n 1

直接选 1 号库(默认 0 号,共 16 个)

示例redis-cli -n 1
PING

探活,正常返回 PONG

示例PING
SELECT <db>

切库,集群模式只有 0 号库

示例SELECT 1
INFO

全量信息;加段名只看一段:server / clients / memory / stats / replication / persistence

示例INFO memory
DBSIZE

当前库的 key 总数

示例DBSIZE
SCAN <游标> MATCH <模式> COUNT 1000

渐进式遍历 key;生产禁用 KEYS *(会阻塞)

示例SCAN 0 MATCH order:* COUNT 1000
TYPE <key> / EXISTS <key> / DEL <key>

看类型 / 是否存在 / 删除(大 key 用 UNLINK 异步删)

示例TYPE user:1
UNLINK <key>

异步删除,删大集合不会卡住主线程(DEL 的替代品)

示例UNLINK big:list
RENAME <旧> <新> / RENAMENX <旧> <新>

改名;NX 版本只在目标不存在时才改

示例RENAME tmp final

🔤 字符串 String

SET <key> <值>

写入;加 EX 秒 / PX 毫秒设过期,NX 不存在才写,XX 存在才写

示例SET token abc EX 3600 NX
SET <key> <值> NX EX 30

最简分布式锁:不存在才写 + 30 秒自动释放

示例SET lock:order 1 NX EX 30
GET <key> / MGET <k1> <k2>

单个 / 批量读取,批量能省掉多次往返

示例MGET user:1 user:2
MSET <k1> <v1> <k2> <v2>

批量写入(原子操作)

示例MSET a 1 b 2
INCR <key> / INCRBY <key> <步长>

自增计数,原子操作(点赞、库存、限流都用它)

示例INCRBY stock:1 -5
SETEX <key> <秒> <值> / PSETEX <key> <毫秒> <值>

写入同时设过期时间

示例SETEX code 300 8821
APPEND <key> <值> / STRLEN <key>

追加 / 取字符串长度(字节数)

示例STRLEN user:1
GETRANGE <key> <start> <end> / SETRANGE <key> <offset> <值>

截取 / 覆盖写入,适合大文本部分更新

示例GETRANGE log 0 99

🗂️ 哈希 Hash

HSET <key> <field> <值>

写字段(可一次写多个 field value)

示例HSET user:1 name 张三 age 30
HGET <key> <field> / HMGET <key> <f1> <f2>

读单个 / 多个字段

示例HMGET user:1 name age
HGETALL <key>

读全部字段(字段多会阻塞,大 hash 用 HSCAN)

示例HGETALL user:1
HDEL <key> <field>

删除字段

示例HDEL user:1 age
HINCRBY <key> <field> <步长>

字段自增,购物车数量、计数器常用

示例HINCRBY cart:1 sku99 2
HLEN <key> / HEXISTS <key> <field> / HKEYS <key>

字段数 / 字段是否存在 / 所有字段名

示例HLEN user:1
HSCAN <key> <游标> COUNT 100

渐进遍历大 hash,避免 HGETALL 卡死

示例HSCAN big:hash 0 COUNT 100

📜 列表 List

LPUSH <key> <值> / RPUSH <key> <值>

从左侧 / 右侧推入元素

示例LPUSH queue task1
LPOP <key> / RPOP <key>

从两端弹出;组合起来就是队列或栈

示例RPOP queue
BLPOP <key> <超时秒> / BRPOP <key> <超时秒>

阻塞式弹出,没元素就等,做消息队列用

示例BLPOP queue 30
LRANGE <key> <start> <end>

取区间元素,0 -1 表示全部

示例LRANGE queue 0 9
LLEN <key> / LINDEX <key> <下标> / LSET <key> <下标> <值>

长度 / 按下标读 / 按下标改

示例LLEN queue
LTRIM <key> <start> <end>

裁剪只保留区间,做固定长度的最新列表

示例LTRIM logs 0 999
LREM <key> <个数> <值>

删除指定个数的相同元素

示例LREM queue 0 task1

🎯 集合与有序集合

SADD <key> <成员> / SREM <key> <成员>

集合增删(自动去重)

示例SADD tags:1 redis mysql
SMEMBERS <key> / SCARD <key> / SISMEMBER <key> <成员>

全部成员 / 数量 / 是否存在(去重、标签、共同好友)

示例SISMEMBER tags:1 redis
SINTER <k1> <k2> / SUNION <k1> <k2> / SDIFF <k1> <k2>

交集 / 并集 / 差集

示例SINTER friends:a friends:b
SPOP <key> [数量] / SRANDMEMBER <key>

随机弹出 / 随机取(抽奖场景)

示例SPOP lottery 3
ZADD <key> <分数> <成员>

有序集合写入,按分数排序(排行榜核心)

示例ZADD rank 99 tom 88 jerry
ZRANGE <key> <start> <end> WITHSCORES

按分数升序取区间(0 -1 全部)

示例ZRANGE rank 0 9 WITHSCORES
ZREVRANGE <key> <start> <end> WITHSCORES

按分数降序取,排行榜 Top N 用这个

示例ZREVRANGE rank 0 9 WITHSCORES
ZSCORE <key> <成员> / ZCARD <key> / ZRANK <key> <成员>

查分数 / 总数 / 升序排名(降序用 ZREVRANK)

示例ZREVRANK rank tom
ZINCRBY <key> <增量> <成员>

分数自增,实时加分场景

示例ZINCRBY rank 5 tom
ZREMRANGEBYRANK <key> <start> <end>

按排名区间删除,保留榜单前 N 名

示例ZREMRANGEBYRANK rank 0 -101

⏳ 过期与内存

EXPIRE <key> <秒> / PEXPIRE <key> <毫秒>

设置过期时间

示例EXPIRE token 3600
TTL <key> / PTTL <key>

查看剩余秒 / 毫秒;-1 表示永不过期,-2 表示已不存在

示例TTL token
PERSIST <key>

移除过期时间,变永久

示例PERSIST token
MEMORY USAGE <key>

查看单个 key 占多少内存,排查大 key

示例MEMORY USAGE big:list
CONFIG GET maxmemory / CONFIG GET maxmemory-policy

看内存上限与淘汰策略

示例CONFIG GET maxmemory-policy
CONFIG SET maxmemory-policy allkeys-lru

改淘汰策略;noeviction 会写满报错,缓存场景别用

示例CONFIG SET maxmemory-policy allkeys-lru
INFO memory

看内存碎片率 mem_fragmentation_ratio,>1.5 考虑重启整理

示例INFO memory
redis-cli --bigkeys

扫描全库找出各类型的最大 key(排障必备)

示例redis-cli --bigkeys
redis-cli --hotkeys

找热 key(需要 maxmemory-policy 为 LFU 类)

示例redis-cli --hotkeys

💾 持久化与复制

BGSAVE

后台生成 RDB 快照(SAVE 会阻塞主线程,生产禁用)

示例BGSAVE
BGREWRITEAOF

后台重写 AOF,压缩文件体积

示例BGREWRITEAOF
LASTSAVE

上次成功持久化的时间戳

示例LASTSAVE
CONFIG GET appendonly / CONFIG GET save

看 AOF 是否开启、RDP 触发条件

示例CONFIG GET appendonly
INFO persistence

看 RDB/AOF 状态、是否正在落盘

示例INFO persistence
REPLICAOF <主机> <端口>

把自己设为某实例的从库(5.0+ 语法,旧版是 SLAVEOF)

示例REPLICAOF 10.0.0.1 6379
REPLICAOF NO ONE

取消复制,提升为主库(主库故障切换时用)

示例REPLICAOF NO ONE
INFO replication

看主从角色、连接状态、复制偏移量

示例INFO replication
WAIT <副本数> <超时毫秒>

等待写同步到 N 个副本,牺牲性能换一致性

示例WAIT 1 1000

🩺 运维与排障

SLOWLOG GET 10

查看最近慢命令(默认超过 10 毫秒记录)

示例SLOWLOG GET 10
CONFIG GET slowlog-log-slower-than

看慢命令阈值(微秒,0 表示全记录)

示例CONFIG GET slowlog-log-slower-than
CLIENT LIST

列出所有客户端连接,找异常来源 IP

示例CLIENT LIST
CLIENT KILL <addr>

断开指定客户端

示例CLIENT KILL 10.0.0.9:52314
INFO clients

看连接数是否接近 maxclients

示例INFO clients
redis-cli --latency -h <主机>

测实例响应延迟基线

示例redis-cli --latency
redis-cli --scan --pattern "前缀:*" | xargs -L 1000 redis-cli UNLINK

按前缀批量删除(用 UNLINK 异步删,别用 DEL)

示例redis-cli --scan --pattern "tmp:*" | xargs -L 500 UNLINK
MONITOR

实时打印所有命令,**仅调试用**,线上开会把吞吐打没

示例MONITOR
FLUSHDB / FLUSHALL

清空当前库 / 所有库,不可逆;建议先在配置里 rename 掉

示例FLUSHDB
RENAME_COMMAND FLUSHALL ""

在 redis.conf 里禁用危险命令(KEYS/FLUSHALL/CONFIG 同理)

示例rename-command FLUSHALL ""

Redis 命令速查怎么用

Redis 常用命令速查:String / Hash / List / Set / ZSet 五大类型,含过期、内存、持久化与主从。

  1. 按数据类型搜索命令
  2. 点击复制
  3. 替换 key 名和参数

小贴士线上禁用 KEYS *,遍历用 SCAN;删大 key 用 UNLINK,别用 DEL。

Redis 命令速查常见问题

Redis 命令速查是免费的吗?

完全免费,无需注册登录,也不限使用次数。997 工具箱所有工具都不收费。

使用Redis 命令速查会把我的数据上传到服务器吗?

不会。Redis 命令速查在浏览器本地完成计算,输入的文本和文件都不会离开你的设备,页面关闭后数据即消失。

Redis 命令速查在手机上能用吗?

可以。页面做了移动端适配,手机和平板的浏览器打开同样能正常使用,也不需要安装任何 App。