如何清空redis数据库?


164

在过去的几天里,我一直在使用redis(并为其添加一些乐趣),我想知道是否有一种方法可以轻松清空数据库(删除设置,现有键...)。 。
在测试期间,我创建了具有很多成员的多个集合,甚至创建了我不记得名字的集合(但是我怎么能列出这些人呢?)。
关于如何摆脱所有这些的任何想法吗?

Answers:



136

小心点

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


使用FlushDB从生产代码中清除特定数据库是否有不利之处?
亚历克斯·纳斯波

1
@AlexNaspo可能存在问题,因为您的数据库越大,刷新所需的时间就越长。由于编号(共享)的数据库由同一Redis服务器管理,因此在此期间可能会阻塞您的其他数据库。如果可能的话,请避免使用共享数据库,因为这也是因为它们不是面向未来的(在v3中不受支持)。详情请参阅:redislabs.com/blog/…–
Itamar Haber

@ItamarHaber删除或使与特定格式匹配的一组密钥最有效的方法是什么?
亚历克斯·纳斯波

1
@AlexNaspo,如果您使用的是v2.8 +,则使用SCAN和DEL的组合可以很好地解决问题。请参阅此处以获取执行此操作的bash脚本:stackoverflow.com/a/23399125/3160475
Itamar Haber 2014年

$ redis-cli然后选择数据库。我选择0 > select 0并删除db 0的所有键> FLUSHDB
sagar junnarkar's

31

redis-cli

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

Redis文件: FLUSHDBFLUSHALL


30

tldr:flushdb清除一个数据库并flushall清除所有数据库

清除当前

使用以下命令删除默认或当前选择的数据库(通常为“ 0”)

redis-cli flushdb

清除特定

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

redis-cli -n 8 flushdb 

清除所有

使用以下命令删除所有Redis数据库

redis-cli flushall

2

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

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

0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.