如何使用 Redis-cli 命令将 CSV 数据批量插入 Redis 持久性系统?
how to Redis-cli command to mass insert CSV data into Redis persistence system?
我的 CSV 数据看起来像这样 ->
Header1 Header2
Key100 Value100
Key200 Value200
它只有两列,第一行是 Header。列是键和各自的值。
现在,我的要求是 -
- 我想将键和值存储为字符串数据类型
- 存储时需要排除Header(第一行)
- 需要排除空键或“”键
- 是','分隔的数据
- 插入时应将单词“数据:”附加到每个键。
例如 - 对于上面提供的 csv 数据,redis 应该存储为 -
Data:Key100
Data:Key200
结果:
当我执行 get Data:Key100
时,我的输出应该是:"Value100"
已尝试使用 awk 命令,但它一直出现错误 - 指定的流 ID 无效
awk -F ',' 'FNR > 1 {print "XADD myStream \""(=="" ? "NA" : )" column_1 "(=="" ? "NA" : )" column_2 ... \n"}' data.csv | redis-cli --pipe
请帮我获取命令。谢谢
我想你是这个意思,它为文件的每一行设置一个单独的键值,但我不确定你为什么似乎在尝试使用流:
awk -F ',' 'FNR>1 { if(!){="NA"}; if(!){="NA"}; printf("SET %s %s\n",,)}' data.csv | redis-cli --pipe
对于此文件(第 3 行缺少键,第 5 行缺少值):
Header1,Header2
Key100,Value100
,fred
Key200,Value200
bill,
生成此代码:
SET Key100 Value100
SET NA fred
SET Key200 Value200
SET bill NA
然后您可以这样做:
redis-cli get Key100
"Value100"
另外,你说你想排除空键,但你的代码用 "NA"
替换它们并设置它们,所以你可能更愿意完全忽略它们:
awk -F ',' 'FNR > 1 && && {printf("SET %s %s\n",,)}' data.csv
产生:
SET Key100 Value100
SET Key200 Value200
我的 CSV 数据看起来像这样 ->
Header1 Header2
Key100 Value100
Key200 Value200
它只有两列,第一行是 Header。列是键和各自的值。 现在,我的要求是 -
- 我想将键和值存储为字符串数据类型
- 存储时需要排除Header(第一行)
- 需要排除空键或“”键
- 是','分隔的数据
- 插入时应将单词“数据:”附加到每个键。
例如 - 对于上面提供的 csv 数据,redis 应该存储为 -
Data:Key100
Data:Key200
结果:
当我执行 get Data:Key100
时,我的输出应该是:"Value100"
已尝试使用 awk 命令,但它一直出现错误 - 指定的流 ID 无效
awk -F ',' 'FNR > 1 {print "XADD myStream \""(=="" ? "NA" : )" column_1 "(=="" ? "NA" : )" column_2 ... \n"}' data.csv | redis-cli --pipe
请帮我获取命令。谢谢
我想你是这个意思,它为文件的每一行设置一个单独的键值,但我不确定你为什么似乎在尝试使用流:
awk -F ',' 'FNR>1 { if(!){="NA"}; if(!){="NA"}; printf("SET %s %s\n",,)}' data.csv | redis-cli --pipe
对于此文件(第 3 行缺少键,第 5 行缺少值):
Header1,Header2
Key100,Value100
,fred
Key200,Value200
bill,
生成此代码:
SET Key100 Value100
SET NA fred
SET Key200 Value200
SET bill NA
然后您可以这样做:
redis-cli get Key100
"Value100"
另外,你说你想排除空键,但你的代码用 "NA"
替换它们并设置它们,所以你可能更愿意完全忽略它们:
awk -F ',' 'FNR > 1 && && {printf("SET %s %s\n",,)}' data.csv
产生:
SET Key100 Value100
SET Key200 Value200