redis - 如何顺利地在 Redis 中刷新数据库?

标签 redis

我使用redis "flushdb"刷新Redis 中的所有数据但导致redis-server 消失了,我想知道问题可能是清理了大量的键。那么有什么办法可以顺利刷Redis吗?也许需要更多时间来刷新所有数据?

最佳答案

flushall 是“删除所有 key ”,如下所述:http://redis.io/commands/flushall

删除操作是阻塞操作。 大型删除操作可能会阻塞 redis 1 分钟或更长时间。 (例如,您删除了一个包含大量 key 的 16GB 哈希)

您应该编写一个使用游标的脚本来执行此操作。

//编辑: 我在这里找到了我的旧答案,并希望提供更具体的资源:

  • 大量键,使用SCAN用游标遍历它们并以较小的批处理优雅地进行清理。
  • 大哈希,使用 UNLINK命令异步删除或 HSCAN用游标遍历它并进行优雅的清理。

关于redis - 如何顺利地在 Redis 中刷新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31258864/

相关文章:

ruby - 追溯未知 Sidekiq 进程的来源

node.js - 在 Jest 中模拟 Redis - NestJS

php - 在 PHP 中注销的决定

database-design - 使用redis获取我的 friend 事件(redis JOIN替代方案)

c# - Redis并发读取和更新

.net - Redis 与内存缓存

node.js - 客户的 Kue 作业进度

redis - 如果连接的客户端断开连接,是否可以从 Redis 服务器获取通知?

python - Redis管道-原子获取另一个键值的值

go - redis-cli 如何对在 HLL 或位图上执行 GET 时返回的字符串值进行编码?