通用命令
约 507 字大约 2 分钟
布欧-Lewyon
2026-05-15
# 现有数据
127.0.0.1:6379> SET user:1 "Alice"
127.0.0.1:6379> SET user:2 "Bob"
127.0.0.1:6379> SADD tags "redis" "database"KEYS / SCAN
# KEYS:匹配所有 key(⚠️ 生产禁用,会阻塞)
127.0.0.1:6379> KEYS *
1) "user:2"
2) "user:1"
# SCAN:游标迭代,不阻塞(生产推荐)
127.0.0.1:6379> SCAN 0 MATCH user:* COUNT 10
1) "0" # 游标,0 表示结束
2) 1) "user:2"
2) "user:1"| 命令 | 特点 | 适用场景 |
|---|---|---|
KEYS | 返回所有匹配 key,O(N) 阻塞 | 调试测试 |
SCAN | 游标迭代,每次少量返回 | 生产环境 |
EXISTS / DEL / TYPE
# 判断 key 是否存在
EXISTS user:1 # (integer) 1
EXISTS user:999 # (integer) 0
# 删除 key(可删除多个)
DEL user:1 user:2 # 返回删除数量
# 查看 key 类型
TYPE user:1 # string
TYPE tags # setEXPIRE / TTL
# 设置过期时间(秒)
SET session:abc "data"
EXPIRE session:abc 3600 # 1 小时后过期
# 查看剩余生存时间
TTL session:abc # (integer) 3595
# 设置毫秒过期
PEXPIRE session:abc 3600000
PTTL session:abc # 毫秒剩余
# 设置 key 永不过期
PERSIST session:abc
# 创建时直接设置过期时间
SET cache:key "value" EX 60
# 查看 key 是否设置了过期
SET another "persist"
TTL another # (integer) -1 表示永不过期
# 不存在的 key 返回 -2
TTL nonexist # (integer) -2RENAME / RANDOMKEY
# 重命名 key
RENAME user:1 user:100
# 随机返回一个 key
RANDOMKEY
# "user:2"
# 移动 key 到另一个数据库(0-15)
SELECT 0
SET temp "data"
MOVE temp 1 # 移动到 db 1
SELECT 1
GET temp # "data"SORT
# 对 List/Set/SortedSet 排序(复杂命令,会阻塞)
RPUSH scores 85 92 78 95
SORT scores # 1) "78" 2) "85" 3) "92" 4) "95"
SORT scores DESC # 降序
SORT scores LIMIT 0 2 # 取前 2 个小结
| 命令 | 用途 | 注意 |
|---|---|---|
KEYS | 搜索 key | 阻塞,生产禁用,用 SCAN 替代 |
EXISTS | 判断存在 | O(1) |
DEL | 删除 | 可批量 |
TYPE | 查看类型 | 调试用 |
EXPIRE / TTL | 过期时间 | 缓存场景核心命令 |
SCAN | 游标遍历 | 生产推荐 |
上一节:安装 Redis 与 redis-cli 下一节:String 与计数器
