我想知道如何才能删除特定命名空间的所有密钥?
FLUSHALL
删除所有密钥,在使用具有相同redis服务器的多个应用程序时出现问题。
答案 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