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

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


当前回答

您的问题似乎是关于删除数据库中的所有密钥。在这种情况下,您应该尝试:

连接到redis。您可以使用命令redis-cli(如果在端口6379上运行),否则还必须指定端口号。选择数据库(命令Select{Index})执行命令flushdb

如果您想刷新所有数据库中的密钥,那么应该尝试刷新。

其他回答

如果使用(Redis 4.0.0或更高版本),则使用FLUSHOLL ASYNC,否则使用FLUSHALL。

https://redis.io/commands/flushall

注:执行FLUSHOLL ASYNC之前的所有内容都将被逐出。执行FLUSHOLL ASYNC期间所做的更改将不受影响。

警惕FLUSHOLL可能过度使用。FLUSHDB仅用于刷新数据库。FLUSHOLL将清除整个服务器。就像服务器上的每个数据库一样。由于问题是关于刷新数据库,我认为这是一个足够重要的区别,值得单独回答。

使用redis cli:

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

例如,在shell中:

redis-cli flushall

如果可以使用RDM(Redis桌面管理器),效果会更好。您可以通过在RDM中创建新连接来连接到redis服务器。

连接后,您可以检查实时数据,也可以使用任何redis命令进行游戏。

在RDM中打开cli。

1) 右键单击连接,您将看到一个控制台选项,只需单击它,RDM底部将打开一个新的控制台窗口。

回到您的问题FLUSHOLL是命令,您只需在redis-cli中键入FLUSHALL即可。

此外,如果您想了解任何redis命令及其正确用法,请访问下面的链接。https://redis.io/commands.

这个方法对我有效——删除Jedis集群上当前连接的所有数据库。

public static void resetRedis() {
    jedisCluster = RedisManager.getJedis(); // your JedisCluster instance

    for (JedisPool pool : jedisCluster.getClusterNodes().values()) {

        try (Jedis jedis = pool.getResource()) {
            jedis.flushAll();
        }
        catch (Exception ex){
            System.out.println(ex.getMessage());
        }
    }

}