redis删除单个key和多个key
封面图
•
2025-10-27
•
PHP
187
0
0
0
在 Redis 中,删除单个 key 和多个 key 的操作是常见的需求。以下是几种常用的方法: --- ## ✅ 一、删除单个 key ### 使用 `DEL` 命令: ```bash DEL key_name ``` - **说明**:`DEL` 是最常用的删除命令,可以删除一个或多个 key。 - **返回值**: - 如果 key 存在并被成功删除,返回 `1`。 - 如果 key 不存在,返回 `0`。 ### 示例: ```bash 127.0.0.1:6379> SET mykey "value" OK 127.0.0.1:6379> DEL mykey (integer) 1 127.0.0.1:6379> GET mykey (nil) ``` --- ## ✅ 二、删除多个 key ### 使用 `DEL` 命令(一次删除多个 key): ```bash DEL key1 key2 key3 ... ``` - **说明**:可以一次删除多个 key,用空格分隔。 - **返回值**:返回被成功删除的 key 数量。 ### 示例: ```bash 127.0.0.1:6379> SET key1 "value1" OK 127.0.0.1:6379> SET key2 "value2" OK 127.0.0.1:6379> DEL key1 key2 (integer) 2 ``` --- ## 🚨 注意事项: - `DEL` 是同步命令,会立即删除 key,不会延迟。 - 如果你想要**批量删除具有某种模式的 key**(如所有以 `user:*` 开头的 key),可以用 `KEYS` + `DEL` 或者 `SCAN` + `DEL`,但要注意性能问题。 --- ## ✅ 三、批量删除匹配的 key(高级用法) ### 方法 1:使用 `KEYS` + `DEL`(不推荐用于生产环境) ```bash DEL $(redis-cli KEYS "pattern*") ``` - **注意**:`KEYS` 命令会阻塞 Redis,不适合大数量数据。 ### 方法 2:使用 `SCAN`(推荐用于生产环境) ```bash redis-cli --scan --pattern "pattern*" | xargs redis-cli del ``` - **说明**:`SCAN` 是非阻塞的,适合处理大量 key。 --- ## ✅ 四、删除 key 的其他方式(适用于特定数据类型) | 命令 | 说明 | |------------|--------------------------| | `DEL` | 删除一个或多个 key | | `UNLINK` | 异步删除 key(Redis 4.0+)| | `EXPIRE` | 设置 key 的过期时间 | | `TTL` | 查看 key 的剩余生存时间 | --- ## ✅ 总结 | 操作 | 命令 | 说明 | |------------------|------------------------------|-------------------------------| | 删除单个 key | `DEL key` | 简单直接 | | 删除多个 key | `DEL key1 key2 ...` | 可以同时删除多个 key | | 批量删除匹配 key | `SCAN` + `DEL` | 推荐用于生产环境 | | 异步删除 key | `UNLINK key` | Redis 4.0+ 支持,性能更好 | --- 如果你有具体的场景(比如删除某个命名空间下的所有 key),我也可以帮你写一个脚本或命令。欢迎继续提问!
上一篇:
Windows下安装Redis及php的redis拓展
下一篇:
php中redis如何实现批量删除key功能?
标题录入,一次不能超过6条
返回顶部
留言
留言
评论