Redis-cli --csv选项(导出到csv)

时间:2012-07-06 19:33:40

标签: redis

我想将slave上的Redis数据子集导出到csv文件。我注意到redis-cli中添加了一个新的csv输出选项,但我无法找到它的工作原理。启用该选项会以csv格式将命令输出打印到屏幕。将此文件转换为csv文件的最佳方法是什么?

5 个答案:

答案 0 :(得分:29)

前沿!

我刚看了source code&它所做的就是将命令作为逗号分隔值输出到stdout。这并不奇怪。

所以,只要您在Linux上,就可以将其重定向到standard way中的文件?

e.g ./

redis-cli --csv your-command > stdout.csv 2> stderr.txt

答案 1 :(得分:0)

转到src redis目录并运行以下命令

./redis-cli $command > $file_name

例如:./redis-cli SMEMBERS "$KEY" > $file_name(RANDOM NAME)

这对我有用。

答案 2 :(得分:0)

对于套接字和/或多个redis服务器,您需要执行以下操作:

redis-cli -s /path/to/socket --csv your-command > stdout.csv 2> stderr.txt

E.g。

redis-cli -s /var/run/redis/redis4.sock --csv lrange my_list 0 -1 > stdout.csv 2> stderr.txt

答案 3 :(得分:0)

命令:

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"
...

答案 4 :(得分:0)

如果您不需要像--csv那样用引号将值引起来,则原始输出就足够了,您只需要每两行用逗号连接即可获得CSV:

redis-cli <your redis command> | paste -d ","  - - > out.csv