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

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


当前回答

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

其他回答

你可以在航站楼使用flushhall

redis-cli> flushall

这个方法对我有效——删除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());
        }
    }

}

如果要清除窗口中的redis:在中查找redis cli

C: \Program Files\Redis并运行FLUSHILL命令。

使用redis cli:

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

例如,在shell中:

redis-cli flushall

您可以使用FLUSHDB

e.g

列出数据库:

127.0.0.1:6379> info keyspace
# Keyspace

列出关键字

127.0.0.1:6379> keys *
(empty list or set)

向键添加一个值

127.0.0.1:6379> lpush key1 1
(integer) 1
127.0.0.1:6379> keys *
1) "key1"
127.0.0.1:6379> info keyspace
# Keyspace
db0:keys=1,expires=0,avg_ttl=0

创建具有两个值的其他键

127.0.0.1:6379> lpush key2 1
(integer) 1
127.0.0.1:6379> lpush key2 2
(integer) 2
127.0.0.1:6379> keys *
1) "key1"
2) "key2"
127.0.0.1:6379> info keyspace
# Keyspace
db0:keys=2,expires=0,avg_ttl=0

列出键2中的所有值

127.0.0.1:6379> lrange key2 0 -1
1) "2"
2) "1"

做FLUSHDB

127.0.0.1:6379> flushdb
OK

列出密钥和数据库

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> info keyspace
# Keyspace