我想删除所有密钥。我要把一切都删掉,给我一个空白的数据库。

有没有办法在Redis客户端中做到这一点?


当前回答

使用redis cli:

FLUSHDB–从连接的当前数据库中删除所有密钥。FLUSHOLL–从所有数据库中删除所有密钥。

例如,在shell中:

redis-cli flushall

其他回答

你可以在航站楼使用flushhall

redis-cli> flushall

有不同的方法。如果要从远程执行此操作,请通过命令行工具redis-cli或任何工具(如telnet,一种编程语言SDK)向该实例发出flushall。或者只需登录该服务器,终止进程,删除其dump.rdb文件并追加.aof(在删除之前对其进行备份)。

到目前为止,答案是绝对正确的;它们删除所有键。

但是,如果您还想从Redis实例中删除所有Lua脚本,则应遵循以下步骤:

脚本刷新

OP提出两个问题:;这就完成了第二个问题(所有内容都已删除)。

如果您使用的是Java,那么从文档中可以根据您的用例使用其中的任何一个。

/**
 * Remove all keys from all databases.
 *
 * @return String simple-string-reply
 */
String flushall();

/**
 * Remove all keys asynchronously from all databases.
 *
 * @return String simple-string-reply
 */
String flushallAsync();

/**
 * Remove all keys from the current database.
 *
 * @return String simple-string-reply
 */
String flushdb();

/**
 * Remove all keys asynchronously from the current database.
 *
 * @return String simple-string-reply
 */
String flushdbAsync();

代码:

RedisAdvancedClusterCommands syncCommands = // get sync() or async() commands 
syncCommands.flushdb();

阅读更多信息:https://github.com/lettuce-io/lettuce-core/wiki/Redis-Cluster

我认为有时会停止redis服务器并删除rdb、aof文件确保没有可以重新加载的数据。然后启动redis服务器,现在它是空的。