如何清空redis数据库?

Posted

技术标签:

【中文标题】如何清空redis数据库?【英文标题】:How to empty a redis database? 【发布时间】:2011-08-10 23:52:30 【问题描述】:

在过去的几天里,我一直在玩 redis(并增加了一些乐趣),我想知道是否有办法清空数据库(删除集合、现有密钥...... .) 很容易。 在我的测试中,我创建了几个有很多成员的集合,甚至创建了我不记得名字的集合(但是我怎么能列出这些人呢?)。 关于如何摆脱所有这些的任何想法?

【问题讨论】:

【参考方案1】:

有正确的答案,但我只想再添加一个选项(需要停机):

    停止 Redis。 删除 RDB 文件(在 redis.conf 中查找位置)。 启动 Redis。

【讨论】:

【参考方案2】:

打开您的 Redis cli,您可以使用两个可能的选项:

FLUSHDB - 删除当前选定数据库的所有键。 FLUSHALL - 删除所有现有数据库的所有键,而不仅仅是当前选择的一个。

【讨论】:

【参考方案3】:

tldr:flushdb 清空一个数据库,flushall 清空所有数据库

清除当前

使用

删除默认或当前选择的数据库(通常为 `0)
redis-cli flushdb

清除具体

删除特定的redis数据库(例如8作为我的目标数据库):

redis-cli -n 8 flushdb 

全部清除

删除所有redis数据库

redis-cli flushall

【讨论】:

【参考方案4】:

你有两个选择:

FLUSHDB - 清除当前活动的数据库 FLUSHALL - 清除所有现有数据库

【讨论】:

【参考方案5】:

redis-cli:

FLUSHDB       - Removes data from your connection's CURRENT database.
FLUSHALL      - Removes data from ALL databases.

Redis 文档: FLUSHDB, FLUSHALL

【讨论】:

【参考方案6】:

这里要小心。

FlushDB 删除当前数据库中的所有键,而 FlushALL 删除当前主机上所有数据库中的所有键。

【讨论】:

使用 FlushDB 从生产代码中清除特定数据库有什么缺点吗? @AlexNaspo 可能存在问题,因为您的数据库越大,刷新所需的时间就越长。由于编号(共享)数据库由同一个 Redis 服务器管理,这可能会在此期间阻塞您的其他数据库。如果可能,请避免使用共享数据库,因为它们不是面向未来的(v3 不支持)。更多详情请看这里:redislabs.com/blog/… @ItamarHaber 删除或过期一组匹配特定格式的密钥的最有效方法是什么? @AlexNaspo 如果您使用的是 v2.8+,SCAN 和 DEL 的组合可以很好地解决问题。有关执行此操作的 bash 脚本,请参见此处:***.com/a/23399125/3160475 $ redis-cli 然后选择数据库。我选择 0 > select 0 并删除 db 0 > FLUSHDB 的所有键

以上是关于如何清空redis数据库?的主要内容,如果未能解决你的问题,请参考以下文章

redis 01 -- 重启 redis 需要清空数据

RedisRedis 数据库操作 ② ( 数据库操作 | 切换数据库 | 查询当前数据库键个数 | 清空当前数据库 | 清空所有数据库 )

获取redis中所有的key,清空整个 Redis 服务器的数据

Redis清空数据

StackExchange.Redis下清空DB

mybatis二级缓存redis,update数据库表的时候,为啥会清空redis数据库???