-
Notifications
You must be signed in to change notification settings - Fork 197
Open
Description
Hello,
I am trying to use AWS Elasticache Redis cluster as backend with channels_redis for connecting to websocket. However, I am unable to configure that as container get restarted every time try making connection. It works well if i connect the single host redis instead of cluster one.
This is the configuration i am using:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("configration_endpoint", "port")],
"capacity": 10_000,
"prefix": "channel-layer:",
},
},
}
Version of channels-redis:
channels==3.0.4
channels-redis==3.3.0
- What you expected to happen?
AWS elasticache redis working well with django channels
I am using uvicorn to run the channel.
Activity
sevdog commentedon Feb 16, 2024
Could you please provide a stacktrace or a log which shows which the error?
Which kind of configuration are you using to run your project?
Sanji515 commentedon Dec 4, 2024
I think we are not able to support AWS Elasticache Cluster mode with
channels_redis
. As it does not have native support for Redis clusters. It can connect to a single Redis instance or a simple setup with multiple Redis instances configured as separate hosts, but it cannot handle Redis cluster features like key distribution and MOVED responses out-of-the-box.redis-py-cluster <- This Python library is specifically designed to work with Redis clusters and will handle the MOVED redirection automatically. But it cannot be direct integrated with
channels_redis
I'm not sure, probably as a workaround we need to create a custom backend using
RedisChannelLayer
to add redis cluster client fromredis-py-cluster
to work with Redis Cluster for AWS Elasticache.amirreza8002 commentedon Dec 4, 2024
redis-py-cluster
is not maintainedredis-py
itself has cluster support now.but yes cluster and normal servers are different
you can't/shouldn't connect to one using the other