我的Python Django应用中Redis无效

2024-04-27 00:28:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我首先在heroku网站上学习了教程。是我干的

pip install rq

然后在工人.py文件

^{pr2}$

然后呢

python worker.py

我得到了以下错误

        Traceback (most recent call last):
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 439, in connect
        sock = self._connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 494, in _connect
        raise err
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 482, in _connect
        sock.connect(socket_address)
    ConnectionRefusedError: [Errno 61] Connection refused

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/client.py", line 572, in execute_command
        connection.send_command(*args)
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 563, in send_command
        self.send_packed_command(self.pack_command(*args))
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 538, in send_packed_command
        self.connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 442, in connect
        raise ConnectionError(self._error_message(e))
    redis.exceptions.ConnectionError: Error 61 connecting to localhost:6379. Connection refused.

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 439, in connect
        sock = self._connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 494, in _connect
        raise err
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 482, in _connect
        sock.connect(socket_address)
    ConnectionRefusedError: [Errno 61] Connection refused

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "worker.py", line 15, in <module>
        worker.work()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/rq/worker.py", line 423, in work
        self.register_birth()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/rq/worker.py", line 242, in register_birth
        if self.connection.exists(self.key) and \
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/client.py", line 855, in exists
        return self.execute_command('EXISTS', name)
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/client.py", line 578, in execute_command
        connection.send_command(*args)
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 563, in send_command
        self.send_packed_command(self.pack_command(*args))
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 538, in send_packed_command
        self.connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 442, in connect
        raise ConnectionError(self._error_message(e))
    redis.exceptions.ConnectionError: Error 61 connecting to localhost:6379. Connection refused.

然后我去了谷歌,找到了包索引,我也跟踪了它

>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')

点击enter并得到以下消息

        Traceback (most recent call last):
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 439, in connect
        sock = self._connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 494, in _connect
        raise err
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 482, in _connect
        sock.connect(socket_address)
    ConnectionRefusedError: [Errno 61] Connection refused

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/client.py", line 572, in execute_command
        connection.send_command(*args)
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 563, in send_command
        self.send_packed_command(self.pack_command(*args))
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 538, in send_packed_command
        self.connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 442, in connect
        raise ConnectionError(self._error_message(e))
    redis.exceptions.ConnectionError: Error 61 connecting to localhost:6379. Connection refused.

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 439, in connect
        sock = self._connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 494, in _connect
        raise err
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 482, in _connect
        sock.connect(socket_address)
    ConnectionRefusedError: [Errno 61] Connection refused

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/client.py", line 1072, in set
        return self.execute_command('SET', *pieces)
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/client.py", line 578, in execute_command
        connection.send_command(*args)
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 563, in send_command
        self.send_packed_command(self.pack_command(*args))
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 538, in send_packed_command
        self.connect()
      File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/redis/connection.py", line 442, in connect
        raise ConnectionError(self._error_message(e))
    redis.exceptions.ConnectionError: Error 61 connecting to localhost:6379. Connection refused.

我所做的并没有超出这些教程的要求。我该怎么做?在


Tags: inpyredislibpackagesconnectlinesite
1条回答
网友
1楼 · 发布于 2024-04-27 00:28:13

你需要运行redis服务器。在控制台上键入redis server启动服务器(macosx)。在

$redis-server

记住,worker需要一个代理(redis)才能与你的应用程序通信。在

相关问题 更多 >