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로 인코딩된 문자열이므로 디코더에 파이프하기만 하면 됩니다.