一尘不染

将json值从文件设置为redis

redis

我有一个bash.sh脚本:

#!/usr/bin/env bash

val=$(cat ../my-microservice/conf/config.json)

echo "set my-microservice-config ${val}" |  redis-cli

其中config.json:

{
  "key" : "value"
}

当我运行它时,我得到:

ERR未知命令’}’

如何从json文件正确设置json值?


阅读 601

收藏
2020-06-20

共1个答案

一尘不染

如果你正在尝试设置 字符串 的值,my-microservice- config关键看你的JSON文件的内容(或其他任何与此有关的,包括二进制),最简单的方法是使用-x选项redis- cli
阅读的最后一个参数 逐字的命令, stdin。例如:

$ redis-cli -x set my-microservice-config < config.json
OK

对于您的示例,它将存储:

$ redis-cli get my-microservice-config
"{\n      \"key\" : \"value\"\n}\n"

要存储JSON数据的紧凑表示形式,可以jq .
-c
flag一起使用:

$ jq -c . config.json | redis-cli -x set my-microservice-config
OK
$ redis-cli get my-microservice-config
"{\"key\":\"value\"}\n"

请注意,Redis本机不支持JSON,但是如果需要解释的JSON值(JSON数据类型),则可以使用ReJSON模块

2020-06-20