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

Python Redis从csv发布。没有错误,但没有收到数据,python,csv,redis,publish,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 = re

下面是我的脚本,它将一台服务器上的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,所以对我来说有点陌生。

您可能想使用
客户端。设置(键,文档)
而不是
客户端。发布(键,文档)

与完全不同的意思,更可能是你想要的

编辑

(感谢您的接受,我正在编辑此内容以使其成为您问题的实际解决方案)

client.publish
的第一个参数是要发布到的频道。在您的情况下,听起来像是在发布到“csv\u文件名:行
的第一个条目”,而实际上您只想发布到
csv\u文件名”


尝试将行
key=“xyzxyz:%s”%(行[0],)
更改为仅
key=“xyzxyz”

注意以下两件事:

  • 检查redis.conf文件中的bind变量。您可以对其进行注释,也可以使用空格分隔的方式添加您的ip地址。要么绑定您的ip,要么就把那一行注释掉
  • 使用client.set函数代替client.push

  • 您确定
    publish
    是您想要的吗?听起来你想
    设置
    ?我的Redis对手告诉我需要在主题(我的csv文件名)下发布。也许这就是我困惑的根源。如果我真的想发布,我需要修改吗?现在,您正在“csv\u文件名:行的第一个\u字段”主题下发布每一行。如果您想以csv名称发布,您应该更改
    key='xyzxyz'
    I的分配。我完全使用了教程中的基本脚本,并根据我的用例对其进行了编辑。谢谢