redis hvals: 배열 구조로 반환됨

redis hvals: 배열 구조로 반환됨

내가 할 때

redis -h host -a password -p port HVALS myhash

해당 해시에 대한 모든 값을 한 줄에 하나씩 반환하는 redis 명령입니다. 제 경우에는 값이 JSON 형식의 문자열입니다.

반환 값을 쉘 변수에 저장한 다음 루프에서 사용하고 싶습니다. 문자열은 기본적으로 공백으로 구분됩니다.

루프 구조와 함께 이 변수를 사용하여 문제를 피하기 위해 모든 것을 처리할 수 있지만 redis 명령을 사용하여 문자열 구조의 배열을 반환하는 redis의 방법이 있는지 궁금합니다.

내가 찾고 있는 것이 무엇인지 이해하려면 다음 명령과 유사하거나 동일한 결과를 고려하십시오.

redis -h host -a password -p port HVALS myhash | jq -s

이 경우 jq는 JSON 개체를 인식하고 배열의 배열을 생성하므로 잘 작동합니다.

Redis만 사용하여 값의 배열 구조를 얻을 수 있는지 궁금하고, 최종 결과가 유효한 JSON이 아닌지는 중요하지 않습니다(내 문자열이 JSON 문자열이라는 사실을 잊어버렸습니다). 나는 이것을하기 위해 redis를 사용하고 싶습니다. 쉘 스크립트 측면에서 이를 수행할 수 있지만 문제는 아닙니다.

답변1

명령이 redis -h host -a password -p port HVALS myhash각 항목을 구분하여 결과를 반환할 수 있는 경우 <space>배열을 사용할 수 있습니다.

hash_array=($(redis -h host -a password -p port HVALS myhash))

그런 다음 for루프로 반복

for item in "${hash_array[@]}"
do
echo "$item"
done

관련 정보