Réponse courte :oui.
Réponse longue :je n'ai pas utilisé Elastic Beanstalk, mais je peux confirmer que si vous créez une instance Redis (c'est-à-dire :mode cluster désactivé) dans ElastiCache, cela fonctionnera correctement avec django-redis
. Insérez simplement le primary_endpoint
dans la configuration Django que vous avez publiée.
N.B. Si vous prévoyez d'utiliser des instances dupliquées avec accès en lecture, configurez-les comme suit :
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": [
"redis://<MASTER ENDPOINT>",
"redis://<SLAVE ENDPOINT>",
]
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
Si vous lancez un cluster Redis cependant, vous ne pouvez pas utiliser la vanille django-redis
. Vous devrez utiliser use redis-py-cluster
avec elle comme décrit dans ce post. Répliqué ici :
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://XXX.YYY.ZZZ.cache.amazonaws.com/0',
'OPTIONS': {
'REDIS_CLIENT_CLASS': 'rediscluster.RedisCluster',
'CONNECTION_POOL_CLASS': 'rediscluster.connection.ClusterConnectionPool',
'CONNECTION_POOL_KWARGS': {
'skip_full_coverage_check': True # AWS ElasticCache has disabled CONFIG commands
}
}
}
}