如何刷新一个命名空间上的所有键?

时间:2014-07-24 23:02:44

标签: namespaces redis

我想知道如何才能删除特定命名空间的所有密钥?

FLUSHALL

删除所有密钥,在使用具有相同redis服务器的多个应用程序时出现问题。

3 个答案:

答案 0 :(得分:0)

在确保FLUSHDB编辑了正确的数据库后,您应该(始终谨慎)SELECT

在相关主题上,您应该考虑使用共享数据库 - 可能会产生各种各样的肮脏,以及它与即将推出的Redis群集(v3处于测试阶段,预计发布EOY)。您可以查看有关Shared vs. Dedicated Redis instances的基准帖子,了解有关该主题的更多背景信息。

答案 1 :(得分:0)

flush(namespace){
        console.log('delete namespace: ', namespace);
        redis.defineCommand('flush', {
            numberOfKeys: 0,
            lua: 'local keys = redis.call(\'keys\', ARGV[1]) for i=1,#keys,5000 do ' +
            'redis.call(\'del\', unpack(keys, i, math.min(i+4999, #keys))) end return keys'
        });
    }

答案 2 :(得分:0)

您无法在Redis中刷新命名空间,而您可以刷新与模式匹配的所有键。

$ redis-cli --scan --pattern 'user:*' | xargs redis-cli unlink