redis hvals:以数组结构形式返回

redis hvals:以数组结构形式返回

当我做

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

redis 上的命令,它将返回该哈希的所有值,每行一个。在我的例子中,值是 JSON 格式的字符串。

我想将返回值存储在 shell 变量上,然后在循环中使用。该字符串默认以空格分隔。

我可以处理所有问题以避免使用此变量与循环结构出现任何问题,但我想知道redis是否有某种方法可以使用redis命令返回字符串结构数组。

要了解我正在寻找的内容,请考虑与此命令类似或相同的结果:

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

在这种情况下,jq 会很好地工作,因为它会识别 JSON 对象并创建一个数组的数组。

我想知道是否可以仅使用 redis 获取值的任何数组结构,并且最终结果是否不是有效的 JSON 也没关系(忘记我的字符串是 JSON 字符串这一事实)。我只想使用 redis 来做到这一点。我可以在 shell 脚本方面做,但这不是问题。

答案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

相关内容