我想将我在从属服务器上的 Redis 数据的一个子集导出到一个 csv 文件。我注意到 redis-cli 中添加了一个新的 csv 输出选项,但我无法找到它如何工作的文档。启用该选项会将命令输出以 csv 格式打印到屏幕。将其转换为 csv 文件的最佳方法是什么?
问问题
29612 次
5 回答
3
命令:
redis-cli --csv hgetall mykey > stdout.csv
创建了一个 CSV 文件,如:
"id","value","id","value", ...
为了让生活更轻松,我使用了:
sed -i 's/\([^\",]*",[^,]*\),/\1\n/g' stdout.csv
它将输出转换为:
"id", "value"
"id", "value"
"id", "value"
...
于 2020-08-10T23:47:59.040 回答
0
转到src
redis目录并运行以下命令
./redis-cli $command > $file_name
示例:./redis-cli SMEMBERS "$KEY" > $file_name(RANDOM NAME)
这对我有用。
于 2017-02-23T16:21:54.937 回答
0
如果是套接字和/或多个 redis 服务器,您需要执行以下操作:
redis-cli -s /path/to/socket --csv your-command > stdout.csv 2> stderr.txt
例如
redis-cli -s /var/run/redis/redis4.sock --csv lrange my_list 0 -1 > stdout.csv 2> stderr.txt
于 2017-09-13T07:52:54.027 回答
0
如果您不需要像这样将值用引号括起来--csv
,那么原始输出就足够了,您只需将每 2 行用逗号连接起来即可获得 CSV:
redis-cli <your redis command> | paste -d "," - - > out.csv
于 2020-11-14T14:22:09.073 回答