Django 开发服务器显示错误 61 Connection Refused with Redis

Posted

技术标签:

【中文标题】Django 开发服务器显示错误 61 Connection Refused with Redis【英文标题】:Django development server showing Error 61 Connection Refused with Redis 【发布时间】:2016-10-12 04:25:34 【问题描述】:

我正在尝试按照教程阅读 Django Channels 的文档。在settings.py 文件中,我尝试使用以下代码将内存 BACKEND 更改为 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 命令,也许吧?如果是 0k,请尝试使用 127.0.0.1 而不是 localhost 没有。它说找不到命令。但是在 shell 中我可以做到import redis, print redis.Redis("localhost") 这给了我Redis<ConnectionPool<Connection<host=localhost,port=6379,db=0>>> 您应该从答案中发布的指南重新安装 redis。这是异常行为,未找到 redis-cli ,因为它是标准 dist 的一部分。 看来你还没有真正安装redis服务器。 所做的只是安装 redis 客户端库。服务器不是 Python,不能通过 pip 安装。得到它here。 【参考方案1】:

请确定您的系统上是否安装了 redis 并且它正在运行。 要检查 redis 是否正在运行,请使用

 redis-cli

然后它会带你到redis控制台,然后如果你输入ping它会返回PONGredis是否正在运行。

如果你的系统中没有redis,请访问Redis Quick Start.

对于 Mac OS X:转到终端并输入 brew install redis

【讨论】:

我做了pip install asgi_redis,它在我的 virtualenv 中安装了 Redis。我应该像 Redis 官网所说的那样从源代码安装吗? 它不是安装在virtualenv中,而是以root身份安装,尝试wget http://download.redis.io/redis-stable.tar.gztar xvzf redis-stable.tar.gzcd redis-stablemakeredis-server【参考方案2】:

这对我有用:

redis-server

很简单

【讨论】:

以上是关于Django 开发服务器显示错误 61 Connection Refused with Redis的主要内容,如果未能解决你的问题,请参考以下文章

Django 开发-视图开发

Django uWSGI NGINX 错误请求 400

Django admin 和 SQLite:数据库磁盘映像格式错误

你如何在 django 网站上记录服务器错误

Django 服务器显示错误的时间

在 Django/GAE 中渲染包含的文件时没有显示错误