diff --git a/Pipfile b/Pipfile index 365b671a03..d5c24ed3f2 100644 --- a/Pipfile +++ b/Pipfile @@ -26,6 +26,7 @@ django-environ = ">=0.4" django-extensions = ">=2.2" django-filter = ">=2.2" django-prometheus = ">=1.1" +django-redis = ">=4.10" django-tenants = ">=3.4" djangorestframework = ">=3.14.0" djangorestframework-csv = ">=2.1" diff --git a/Pipfile.lock b/Pipfile.lock index ae2ca191fc..96dddd2f94 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "4d4a010f333a433e1d2b87d1632b76f0e2c0ad91982e6d762070714c47a3c573" + "sha256": "5f83cd3699d9f37dd9ca68412c10e51782efe4ec41768720290d2e3bebec9cbe" }, "pipfile-spec": 6, "requires": { @@ -574,6 +574,14 @@ "index": "pypi", "version": "==2.3.1" }, + "django-redis": { + "hashes": [ + "sha256:6a02abaa34b0fea8bf9b707d2c363ab6adc7409950b2db93602e6cb292818c42", + "sha256:ebc88df7da810732e2af9987f7f426c96204bf89319df4c6da6ca9a2942edd5b" + ], + "index": "pypi", + "version": "==5.4.0" + }, "django-tenants": { "hashes": [ "sha256:36052d5bfce8240afab062e2d33ffeb25e38fa57b2a2b003eacd7e8d60334d97" diff --git a/koku/koku/cache.py b/koku/koku/cache.py index 9cd9cfbcd0..5563a5d9d3 100644 --- a/koku/koku/cache.py +++ b/koku/koku/cache.py @@ -9,7 +9,7 @@ from django.core.cache import caches from django.core.cache.backends.dummy import DummyCache from django.core.cache.backends.locmem import LocMemCache -from django.core.cache.backends.redis import RedisCache +from django_redis.cache import RedisCache from redis import Redis from api.common import log_json diff --git a/koku/koku/settings.py b/koku/koku/settings.py index 3aa54d15fd..d1b718e2b6 100644 --- a/koku/koku/settings.py +++ b/koku/koku/settings.py @@ -237,29 +237,33 @@ else: CACHES = { "default": { - "BACKEND": "django.core.cache.backends.redis.RedisCache", + "BACKEND": "django_redis.cache.RedisCache", "LOCATION": f"redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_DB}", "KEY_FUNCTION": "django_tenants.cache.make_key", "REVERSE_KEY_FUNCTION": "django_tenants.cache.reverse_key", - "TIMEOUT": 3600, # 1 hour default + "TIMEOUT": 3_600, # 1 hour default "OPTIONS": { - "health_check_interval": REDIS_HEALTH_CHECK_INTERVAL, - "retry_on_timeout": REDIS_RETRY_ON_TIMEOUT, + "CLIENT_CLASS": "django_redis.client.DefaultClient", + "IGNORE_EXCEPTIONS": True, + "MAX_ENTRIES": 1_000, + "CONNECTION_POOL_CLASS_KWARGS": REDIS_CONNECTION_POOL_KWARGS, }, }, "rbac": { - "BACKEND": "django.core.cache.backends.redis.RedisCache", + "BACKEND": "django_redis.cache.RedisCache", "LOCATION": f"redis://{REDIS_HOST}:{REDIS_PORT}/1", "TIMEOUT": ENVIRONMENT.get_value("RBAC_CACHE_TIMEOUT", default=300), "OPTIONS": { - "health_check_interval": REDIS_HEALTH_CHECK_INTERVAL, - "retry_on_timeout": REDIS_RETRY_ON_TIMEOUT, + "CLIENT_CLASS": "django_redis.client.DefaultClient", + "IGNORE_EXCEPTIONS": True, + "MAX_ENTRIES": 1_000, + "CONNECTION_POOL_CLASS_KWARGS": REDIS_CONNECTION_POOL_KWARGS, }, }, "worker": { "BACKEND": "django.core.cache.backends.db.DatabaseCache", "LOCATION": "worker_cache_table", - "TIMEOUT": 86400, # 24 hours + "TIMEOUT": 86_400, # 24 hours }, }