Django Channel - Redis integration error : aioredis.errors.ReplyError: ERR unknown command 'EVAL'

Django Channel - Redis integration error : aioredis.errors.ReplyError: ERR unknown command 'EVAL'

我是 Django 频道的新手,正在学习教程 (https://channels.readthedocs.io/en/latest/tutorial/part_2.html)

由于Redis不支持Windows 7 我从(https://github.com/dmajkic/redis/downloads)

下载了Redis 2.4版

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

$ 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 启动开发服务器。

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

之前:

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