Redis从csv发布。没有错误但没有收到数据

时间:2014-04-24 18:51:54

标签: python csv redis publish

下面是我的脚本,它将位于一台服务器上的csv中的数据插入到另一台服务器上的Redis中。如果它有用..

我没有收到错误但我也没有显示redis方面收到的任何数据。所以我不确定哪个更糟。

#!/opt/python/bin/python


import csv
import redis
from redis import StrictRedis

reader = csv.reader(open("/opt/xyzxyz.csv"))
header = reader.next()


client = redis.StrictRedis(host='XXXXXXXXX.XX.XXX.X.XXX', port=6379, db=0)

for row in reader:
    key = "xyzxyz:%s" % (row[0], )
    doc = dict(zip(header, row))

    client.publish(key, doc)

对上述过程中遗漏的内容有何看法?或者如果在redis方面有什么我没做的话?

这是我第一次与Redis合作,所以对我来说有点新鲜。

2 个答案:

答案 0 :(得分:0)

您可能希望使用client.set(key, doc)而不是client.publish(key, doc)

Publishset的含义完全不同,这更有可能是您想要的。

修改

(感谢接受,我只是编辑它以使其成为您问题的实际解决方案)

client.publish的第一个参数是您要发布的频道。在您的情况下,您将发布到'csv_filename:first_entry_of_row when really you want to be publishing to just csv_filename`。

尝试将行key = "xyzxyz:%s" % (row[0],)更改为key = "xyzxyz"

答案 1 :(得分:0)

请注意以下两点:

  1. 检查 redis.conf 文件中的绑定变量。要么你评论它,要么添加你的IP地址与空格分开。可以绑定192.168.1.10010.0.0.1,your_ip,也可以只注释该行。
  2. 使用client.set函数而不是client.push。