【问题标题】:Django Channel - Redis integration error : aioredis.errors.ReplyError: ERR unknown command 'EVAL'Django Channel - Redis 集成错误:aioredis.errors.ReplyError: ERR unknown command 'EVAL'
【发布时间】:2020-07-27 11:09:52
【问题描述】:

我是 Django 频道的新手并遵循教程 (https://channels.readthedocs.io/en/latest/tutorial/part_2.html)

由于 Redis 不支持 Windows 7,我从 (https://github.com/dmajkic/redis/downloads) 下载了 Redis 2.4 版

当我尝试从 Django shell 访问 Redis 时,出现主题中提到的错误。

$ python3 manage.py shell
>>> import channels.layers
>>> channel_layer = channels.layers.get_channel_layer()
>>> from asgiref.sync import async_to_sync
>>> async_to_sync(channel_layer.send)('test_channel', {'type': 'hello'})
>>> async_to_sync(channel_layer.receive)('test_channel')      # ERROR OCCURED AFTER THIS STEP

正如您在下面看到的,Redis 文件夹,它在端口 6379 处启动开发服务器。

【问题讨论】:

  • Eval 自 Redis 2.6 起可用。 Redis 2.4 已经接近 10 年了 - 现代框架已经摆脱了不受支持的平台和不受支持的版本,这是一种预期。
  • 谢谢,你有 Redis 2.6 repo 的参考吗?
  • 从 (sourceforge.net/projects/redis) 下载了 Redis 2.4:但出现了新错误,aioredis.errors.ReplyError: ERR unknown command 'BZPOPMIN'。
  • @Melvyn 我可以在没有 Redis 的情况下运行 Channels 吗?
  • github.com/django/channels_redis#dependencies -> Redis >= 5.0。您可以使用另一个 layers backend 运行频道,但本教程使用 redis。

标签: django redis django-channels


【解决方案1】:

按照相同的教程,我遇到了同样的问题,包括一个类似的旧项目突然停止工作......以下更改解决了我的问题:

之前:

CHANNEL_LAYERS = {
    'default': {
       'BACKEND': 'channels_redis.core.RedisChannelLayer',
       'CONFIG': {
            'hosts': [('127.0.0.1', 6379)]
        },
    },
}

解决方案:

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels.layers.InMemoryChannelLayer"
   }
}

来源:https://channels.readthedocs.io/en/latest/topics/channel_layers.html#in-memory-channel-layer

【讨论】:

  • 嘿!非常感谢..我也面临同样的挑战很长一段时间..而且大多数时候都是微不足道的事情!
  • 非常感谢老兄,我从早上开始就一直在解决这个问题,然后才发现你的解决方案。非常感谢
  • 你救了我。谢谢!
  • 嘿,我之前将图层设置更改为InMemoryChannelLayer,直到最近它工作正常。我遇到了这个documentation,它说不要在生产中使用内存配置。所以我回到EVAL 错误。还有其他可能的解决方案吗?
  • 这基本上不是一个解决方案,因为InMemoryChannelLayer 不适用于大多数生产设置(即任何具有多个服务器线程的设置)
猜你喜欢
  • 1970-01-01
  • 2011-04-11
  • 2019-01-07
  • 2023-02-26
  • 1970-01-01
  • 2016-11-26
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多