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
我是 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