Redisでデータをデコードするスクリプトを作成しようとしています。ノードスクリプトで作成することもできますが、できるだけ簡単にしたいと思います。
これまで私が得たものは次のとおりです。
redis-cli GET "d1g8y" | xargs -i node -e "require('zlib').gunzip(Buffer.from('{}', 'base64'), function(err, string) { console.log(string.toString()); })"
しかし、これはうまくいきません。このコマンドの結果を得てredis-cli GET "d1g8y"
このスクリプトに入れるにはどうすればよいですか?Buffer.from('$VARIABLE_FROM_PREVIOUS_COMMAND', 'base64')
これがデータを圧縮する方法です
const zlib = require('zlib');
const zipAsync = Promise.promisify(zlib.gzip, {context: zlib});
return zipAsync(Buffer.from(value)).then(console.log);
ありがとうございます。
答え1
なぜそれを使うのですかnode
?曲射砲で鹿を狩るのと似ていませんか?
redis-cli GET "d1g8y" | zcat | base64 --decode
zcat
gzipで圧縮されたデータをプレーンテキストに変換します。あなたの場合はbase64でエンコードされた文字列なので、デコーダにパイプするだけです。