redis-cli -h yourhost -p 6379 -a yourpassword FLUSHALL
方法一:清空当前数据库
FLUSHDB 命令用于清空当前选定的数据库里的所有 key。这个命令不会产生任何返回值。
方法二:清空所有数据库
FLUSHALL 命令用于清空整个 Redis 实例里的所有数据库里的所有 key。这个命令也不会产生任何返回值。
方法三:清空并返回受影响的键数
从 Redis 4.0.0 开始,FLUSHALL 和 FLUSHDB 命令都支持使用 ASYNC 选项,以非阻塞的方式来删除数据。
如何提升效率
使用 redis-cli --scan --pattern 'prefix*' | xargs redis-cli del 可以批量删除指定前缀的key,效率更高,避免全清带来的风险。
新进度:异步清空
FLUSHALL ASYNC 现在是默认行为,在 Redis 7+ 中进一步优化了内存释放速度,适合生产环境大缓存清理。
脚本示例
#!/bin/bash
redis-cli -p 6379 FLUSHALL ASYNC
echo "缓存已清空"
注意事项
清空缓存前务必备份数据,FLUSHALL 会丢失所有数据,使用时谨慎。
FAQ
Q: FLUSHDB 和 FLUSHALL 有什么区别?
A: FLUSHDB 只清当前数据库,FLUSHALL 清所有数据库。
Q: 如何只删除特定 key?
A: 用 DEL key1 key2 或 KEYS pattern | xargs redis-cli del。
Q: 清空后数据怎么恢复?
A: 依赖应用重载或从持久化文件 RDB/AOF 恢复。
Q: ASYNC 模式安全吗?
A: 是的,非阻塞,适合线上,但确认版本支持。