aioredis.errors.ReplyError:ERR未知命令'BZPOPMIN'尝试使用Redis时

问题描述

我有redis 5.4。我很高兴这个错误aioredis.errors.ReplyError: ERR unkNown command 'BZPOPMIN' 我正在django-channels网站上关注该教程。 这是消费者代码

class ChatConsumer(WebsocketConsumer):
    def connect(self):
        self.room_name = self.scope['url_route']['kwargs']['room_name']
        self.room_group_name = 'chat_%s' % self.room_name

        # Join room group
        async_to_sync(self.channel_layer.group_add)(
            self.room_group_name,self.channel_name
        )

        self.accept()

    def disconnect(self,close_code):
        # Leave room group
        async_to_sync(self.channel_layer.group_discard)(
            self.room_group_name,self.channel_name
        )

    # Receive message from WebSocket
    def receive(self,text_data):
        text_data_json = json.loads(text_data)
        message = text_data_json['message']

        # Send message to room group
        async_to_sync(self.channel_layer.group_send)(
            self.room_group_name,{
                'type': 'chat_message','message': message
            }
        )

    # Receive message from room group
    def chat_message(self,event):
        message = event['message']

        # Send message to WebSocket
        self.send(text_data=json.dumps({
            'message': message
        }))

我使用python manage.py runserver 0.0.0.0:8080 -- noreload运行服务器,也许它需要做一些事情,我打开5656端口上的页面,并在8080上托管该页面,因为我正在使用vagrant,这些是VagrantFile中设置的端口

编辑 不知道为什么,但是如果我检查pip冻结上的redis-server版本,我会得到(.venv)vagrant @ vagrant:/ vagrant / ChatApp $ redis-server --version Redis服务器v = 4.0.9 sha = 00000000:0 malloc = jemalloc-3.6.0位= 64 build = 9435c3c2879311f3,但我不确定为什么会这样,如何解决

点子感觉输出

aioredis==1.3.1
asgiref==3.2.10
async-timeout==3.0.1
attrs==20.1.0
autobahn==20.7.1
Automat==20.2.0
certifi==2020.6.20
cffi==1.14.2
channels==2.4.0
channels-redis==3.0.1
chardet==3.0.4
constantly==15.1.0
cryptography==3.0
daphne==2.5.0
Django==3.1
django-channels==0.7.0
hiredis==1.1.0
hyperlink==20.0.1
idna==2.10
incremental==17.5.0
msgpack==1.0.0
oauthlib==3.1.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
pyhamcrest==2.0.2
pyOpenSSL==19.1.0
pytz==2020.1
redis-server==5.0.7
requests==2.24.0
requests-oauthlib==1.3.0
service-identity==18.1.0
six==1.15.0
sqlparse==0.3.1
Twisted==20.3.0
txaio==20.4.1
urllib3==1.25.10
zope.interface==5.1.0

解决方法

我不确定但问题可能与channels-Redis有关,可能与channels版本不兼容,请尝试降级或更新channels-Redis