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

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


当前回答

您可以使用FLUSHOLL从每个数据库中删除所有密钥。其中,FLUSHDB将删除当前数据库中的所有密钥。

其他回答

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

https://redis.io/commands/flushall

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

冲洗室,冲洗室从所有数据库中删除所有密钥

冲水阀从当前数据库中删除所有密钥

脚本刷新从脚本缓存中删除所有脚本。

打开redis cli并键入:

FLUSHALL

这适用于我:redis cli KEYS\*| xargs--max procs=16-L 100 redis cli DEL

它列出了redis中的所有密钥,然后使用xargs传递给redis-cli DEL,每个命令最多使用100个密钥,但每次运行16个命令,当由于安全原因没有FLUSHDB或FLUSHOLL时,非常快速且有用,例如在Docker或Kubernetes中使用Bitnami的redis时。而且,它不需要任何额外的编程语言,只需要一行。

您可以在python中使用以下方法

def redis_clear_cache(self):

    try:
        redis_keys = self.redis_client.keys('*')
    except Exception as e:
        # print('redis_client.keys() raised exception => ' + str(e))
        return 1

    try:
        if len(redis_keys) != 0:
            self.redis_client.delete(*redis_keys)
    except Exception as e:
        # print('redis_client.delete() raised exception => ' + str(e))
        return 1

    # print("cleared cache")
    return 0