Django开发服务器连接Redis时显示错误61拒绝连接。

15

我正在尝试按照Django Channels在read the docs上的教程进行操作。在settings.py文件中,我试图使用以下代码将inmemory后端更改为redis后端:

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "asgi_redis.RedisChannelLayer",
        "CONFIG": {
            "hosts": [("localhost", 6379)],
        },
        "ROUTING": "chan.routing.channel_routing",
    },
}

然而,一旦我这样做,运行runserver命令的控制台会显示以下错误:

ConnectionError: Error 61 connecting to localhost:6379. Connection refused.

我该如何解决这个问题?


如果您在终端中键入 redis-cli,它是否允许您建立连接?也许可以尝试使用 ping 命令。如果一切正常,请尝试使用 127.0.0.1 而不是 localhost - Damaged Organic
不行,它提示命令未找到。但是在终端里我可以运行 import redisprint redis.Redis("localhost") 命令,输出为 Redis<ConnectionPool<Connection<host=localhost,port=6379,db=0>>> - MiniGunnR
你应该按照答案中发布的指南重新安装Redis。如果redis-cli不可用,这是异常行为,因为它是标准发行版的一部分。 - Damaged Organic
看起来你似乎没有安装redis服务器。 - Daniel Roseman
我使用了 pip install asgi_redis 命令。我认为它已经为我安装了 Redis,因为后来我尝试运行 pip install redis 的时候,它告诉我这个需求已经被安装了。我是在虚拟环境下进行所有操作的。难道我漏掉了什么吗? - MiniGunnR
3
这句话的意思是:这只是安装 Redis 客户端库,服务器不是 Python,并且无法通过 pip 安装。你可以在这里下载它:http://redis.io/download。 - Daniel Roseman
2个回答

29
请确保您的系统上已安装redis并且正在运行。 要检查redis是否正在运行,请使用:
 redis-cli

接着进入Redis控制台,如果输入ping命令,将会返回PONG以表示Redis是否正在运行。

如果您的系统中没有安装Redis,请访问Redis快速入门

对于Mac OS X:前往终端并输入brew install redis命令。


1
我运行了 pip install asgi_redis 命令在我的虚拟环境中安装了 Redis。我是否应该按照 Redis 官网上的说明从源代码进行安装? - MiniGunnR
这不是要在虚拟环境中安装,而是要以根用户的身份安装,请尝试以下命令:wget http://download.redis.io/redis-stable.tar.gztar xvzf redis-stable.tar.gzcd redis-stablemakeredis-server - MicroPyramid

5

这对我有用:

redis-server

这很简单


1
...但为什么它有效呢?它对我也起作用了。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接