CentOS に Redis をインストールしており、このように複数の redis のキーを持っています。
Product:<id>:<url>
Product:*:*
CLI ですべてを削除するにはどうすればよいですか?
Redis バージョン: 3.2.4 [最新だと思います]
ありがとう!
CentOS に Redis をインストールしており、このように複数の redis のキーを持っています。
Product:<id>:<url>
Product:*:*
CLI ですべてを削除するにはどうすればよいですか?
Redis バージョン: 3.2.4 [最新だと思います]
ありがとう!
このredis-cli
ツールを使用すると、次のことができます。
redis-cli --scan --pattern 'Product:*:*' | xargs redis-cli DEL
それにはいくつかの方法があります。
2 番目の例に従う場合は、次の手順を実行します。
フォルダーを作成し、その中に次のコマンドを実行して ioredis をインストールします。
npm install ioredis
そのフォルダー内に、次の内容の redis.js ファイルを作成します
module.exports.redisDel = function(key) {
console.log("del started for key: ", key);
var Redis = require("ioredis");
var redis = new Redis({
port: 6379, // Redis port
host: "192.168.93.27", // Redis host
family: 4, // 4 (IPv4) or 6 (IPv6)
password: "SetCorrectPassword"
});
return new Promise((resolve, reject) => {
var stream = redis.scanStream({
// only returns keys following the pattern of "key"
match: key,
// returns approximately 100 elements per call
count: 100
});
stream.on('data', function (resultKeys) {
if (resultKeys.length) {
console.log(resultKeys)
redis.del(resultKeys); //from version 4 use unlink instead of del
}
else {
console.log("nothing found");
}
});
stream.on('end', function (resultKeys) {
console.log("end");
resolve()
})
})
}
目的のキー (この場合は yourKey*) を渡してスクリプトを実行します。
node -e 'require(\"./redis\").redisDel(\"yourKey*\")'