Redis键管理命令
键管理命令用于查询、删除、设置过期、检查类型等操作,是Redis运维的基础。
KEYS查找键
基本语法
Bash
KEYS pattern
使用示例
Bash
# 查找所有键
KEYS *
# 查找特定前缀
KEYS user:*
# 返回: "user:1000", "user:1001"
# 查找特定后缀
KEYS *:cache
# 查找包含特定字符
KEYS *session*
# 查找单个字符匹配
KEYS user:?00
# 匹配 user:100, user:200 等
KEYS会阻塞,生产环境慎用,大数据量用SCAN替代。
SCAN迭代遍历
基本语法
Bash
SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
使用示例
Bash
# 遍历所有键
SCAN 0
# 返回: cursor, [key1, key2, ...]
# 继续遍历
SCAN 100
# 匹配特定模式
SCAN 0 MATCH user:* COUNT 100
# 遍历完成后cursor返回0
SCAN不阻塞,适合遍历大量键。
DEL删除键
基本语法
Bash
DEL key [key ...]
使用示例
Bash
# 删除单个键
DEL user:1000
# 删除多个键
DEL user:1000 user:1001 user:1002
# 删除不存在的键
DEL notexist
# 返回: 0
UNLINK异步删除
基本语法
Bash
UNLINK key [key ...]
使用示例
Bash
# 异步删除大键
UNLINK bigkey
UNLINK异步删除,不阻塞主线程,适合删除大键。
EXISTS检查键存在
基本语法
Bash
EXISTS key [key ...]
使用示例
Bash
# 检查单个键
EXISTS user:1000
# 返回: 1(存在)
# 检查多个键
EXISTS user:1000 user:1001 notexist
# 返回: 2(存在2个)
# 不存在的键
EXISTS notexist
# 返回: 0
TYPE获取键类型
基本语法
Bash
TYPE key
使用示例
Bash
SET strkey "value"
TYPE strkey
# 返回: "string"
HSET hashkey field value
TYPE hashkey
# 返回: "hash"
LPUSH listkey value
TYPE listkey
# 返回: "list"
SADD setkey value
TYPE setkey
# 返回: "set"
ZADD zsetkey 1 value
TYPE zsetkey
# 返回: "zset"
EXPIRE设置过期时间
基本语法
Bash
EXPIRE key seconds [NX|XX|GT|LT]
使用示例
Bash
# 设置10秒后过期
EXPIRE mykey 10
# 设置过期时间戳
EXPIREAT mykey 1700000000
# 仅当key有过期时间时设置(XX)
EXPIRE mykey 10 XX
# 仅当key没有过期时间时设置(NX)
EXPIRE mykey 10 NX
# 仅当新时间大于当前过期时间时设置(GT)
EXPIRE mykey 20 GT
# 仅当新时间小于当前过期时间时设置(LT)
EXPIRE mykey 5 LT
TTL查看剩余过期时间
基本语法
Bash
TTL key
使用示例
Bash
# 设置过期
EXPIRE mykey 100
# 查看剩余秒数
TTL mykey
# 返回: 98
# 查看毫秒精度
PTTL mykey
# 返回: 98500
# 永不过期的键
TTL noexpire
# 返回: -1
# 已过期的键
TTL expiredkey
# 返回: -2
TTL返回秒,PTTL返回毫秒,-1永不过期,-2已过期。
PERSIST移除过期时间
基本语法
Bash
PERSIST key
使用示例
Bash
# 设置过期
EXPIRE mykey 100
# 移除过期时间
PERSIST mykey
# 返回: 1
TTL mykey
# 返回: -1(永不过期)
RENAME重命名键
基本语法
Bash
RENAME key newkey
使用示例
Bash
# 重命名键
RENAME oldkey newkey
# 目标键存在时会被覆盖
RENAME key1 key2
安全重命名
Bash
# 仅当目标键不存在时重命名
RENAMENX key1 key2
# 返回: 1(成功)或 0(目标键已存在)
DUMP/RESTORE序列化
导出数据
Bash
# 序列化键值
DUMP mykey
# 返回: 序列化的二进制数据
导入数据
Bash
# 反序列化导入
RESTORE newkey 0 <dump_data>
# 设置过期时间(毫秒)
RESTORE newkey 10000 <dump_data>
# 替换已存在的键
RESTORE newkey 0 <dump_data> REPLACE
OBJECT对象信息
基本语法
Bash
OBJECT subcommand key
使用示例
Bash
# 查看编码类型
OBJECT ENCODING mykey
# 返回: "embstr", "raw", "int", "ziplist" 等
# 查看引用计数
OBJECT REFCOUNT mykey
# 查看空闲时间(秒)
OBJECT IDLETIME mykey
DBSIZE数据库大小
基本语法
Bash
DBSIZE
使用示例
Bash
DBSIZE
# 返回: 1000(当前数据库键总数)
FLUSHDB/FLUSHALL清空数据
清空当前数据库
Bash
# 同步清空
FLUSHDB
# 异步清空
FLUSHDB ASYNC
清空所有数据库
Bash
# 同步清空
FLUSHALL
# 异步清空
FLUSHALL ASYNC
FLUSHALL会清空所有数据,生产环境谨慎使用。
常用命令速查表
| 命令 | 说明 | 示例 |
|---|---|---|
| KEYS | 查找键 | KEYS * |
| SCAN | 迭代遍历 | SCAN 0 |
| DEL | 删除键 | DEL k |
| UNLINK | 异步删除 | UNLINK k |
| EXISTS | 检查存在 | EXISTS k |
| TYPE | 获取类型 | TYPE k |
| EXPIRE | 设置过期 | EXPIRE k 10 |
| TTL | 查看剩余 | TTL k |
| PERSIST | 移除过期 | PERSIST k |
| RENAME | 重命名 | RENAME k1 k2 |
| DUMP | 序列化 | DUMP k |
| RESTORE | 反序列化 | RESTORE k 0 data |
要点总结
- KEYS生产环境慎用,大数据量使用SCAN替代
- UNLINK异步删除,适合删除大键
- TTL返回-1表示永不过期,-2表示已过期
- EXPIRE支持NX/XX/GT/LT条件设置
- TYPE返回数据类型:string/hash/list/set/zset
- RENAME覆盖目标键,RENAMENX安全重命名
- DUMP/RESTORE用于数据迁移备份
- FLUSHALL清空所有数据,谨慎使用
📝 发现内容有误?点击此处直接编辑