select 0~15 切换数据库
以下是基于图片中「redis通用命令」的示例讲解,结合具体场景说明每个命令的用法及注意事项:
1. keys(查找键)
- 命令格式:
keys pattern
示例:
keys user:* # 查找所有以"user:"开头的键 keys * # 查找所有键(慎用!)
作用:
- 模糊匹配键名,适合开发环境调试。
风险:
- 生产环境避免使用!若数据量大(如百万级key),会阻塞redis单线程,导致服务短暂不可用。
- 替代方案:用
scan
命令分批次遍历(非阻塞)。
2. del(删除键)
- 命令格式:
del key [key ...]
示例:
del user:123 # 删除单个键 del user:123 user:456 # 批量删除
返回值:
- 成功删除的键数量(如
(integer) 1
)。
注意:
删除不存在的键会返回 0
,但不会报错。
3. exists(判断键是否存在)
- 命令格式:
exists key
示例:
exists cache:homepage # 检查缓存是否存在
返回值:
1
(存在)或0
(不存在)。- 支持批量检查:
exists key1 key2
返回存在的总数量。
4. expire(设置键有效期)
- 命令格式:
expire key seconds
单位是秒
示例:
set session:abc "user_data" expire session:abc 3600 # 1小时后自动删除
典型场景:
- 会话(session)管理、临时验证码缓存。
扩展命令:
pexpire
:以毫秒为单位设置。expireat
:指定过期时间戳(如expireat key 1730000000
)。
5. ttl(查看剩余有效期)
- 命令格式:
ttl key
示例:
- ttl session:abc # 返回剩余秒数
返回值:
-2
:键不存在。-1
:键存在但未设置有效期。 就是永久生效- 正整数:剩余时间(秒)。
6. help(查看命令帮助)
- 命令格式:
help command
示例:
help del # 查看del命令的详细说明 help expire
- 输出内容:
包括命令语法、简介、版本支持、所属组(如 group: generic
)。
综合示例场景
假设开发一个用户登录系统:
# 1. 存储用户登录令牌(有效期30分钟) set token:abc123 "user_id_456" expire token:abc123 1800 # 2. 检查令牌是否有效 exists token:abc123 # 返回1 ttl token:abc123 # 返回剩余时间(如1752秒) # 3. 用户退出时删除令牌 del token:abc123 # 返回1(删除成功) # 4. 安全清理测试数据(开发环境) keys test:* # 查找所有测试键 del $(redis-cli keys "test:*") # 批量删除(生产环境禁用!)
关键注意事项
生产环境禁忌:
- 禁用
keys *
,用scan
替代。 - 慎用
flushdb
/flushall
(清空数据库)。
性能优化:
- 批量操作(如
del key1 key2
)比循环单次操作更高效。
文档参考:
- 所有命令官方文档可通过
help
或 redis官网查看。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论