diff --git a/django_prometheus/cache/backends/redis.py b/django_prometheus/cache/backends/redis.py index b777ed76..235872f0 100644 --- a/django_prometheus/cache/backends/redis.py +++ b/django_prometheus/cache/backends/redis.py @@ -1,5 +1,6 @@ +import warnings + from django.core.cache.backends.redis import RedisCache as DjangoRedisCache -from django_redis import cache, exceptions from django_prometheus.cache.metrics import ( django_cache_get_fail_total, @@ -9,39 +10,26 @@ ) -class RedisCache(cache.RedisCache): - """Inherit redis to add metrics about hit/miss/interruption ratio""" - - @cache.omit_exception - def get(self, key, default=None, version=None, client=None): - try: - django_cache_get_total.labels(backend="redis").inc() - cached = self.client.get(key, default=None, version=version, client=client) - except exceptions.ConnectionInterrupted as e: - django_cache_get_fail_total.labels(backend="redis").inc() - if self._ignore_exceptions: - if self._log_ignored_exceptions: - self.logger.error(str(e)) - return default - raise - else: - if cached is not None: - django_cache_hits_total.labels(backend="redis").inc() - return cached - django_cache_misses_total.labels(backend="redis").inc() - return default - - -class NativeRedisCache(DjangoRedisCache): +class RedisCache(DjangoRedisCache): def get(self, key, default=None, version=None): - django_cache_get_total.labels(backend="native_redis").inc() + django_cache_get_total.labels(backend="redis").inc() try: result = super().get(key, default=None, version=version) except Exception: - django_cache_get_fail_total.labels(backend="native_redis").inc() + django_cache_get_fail_total.labels(backend="redis").inc() raise if result is not None: - django_cache_hits_total.labels(backend="native_redis").inc() + django_cache_hits_total.labels(backend="redis").inc() return result django_cache_misses_total.labels(backend="native_redis").inc() return default + + +class NativeRedisCache(RedisCache): + def __init__(self, *args, **kwargs): + warnings.warn( + "NativeRedisCache is renamed, use RedisCache instead", + DeprecationWarning, + stacklevel=2, + ) + super().__init__(*args, **kwargs) diff --git a/django_prometheus/tests/end2end/testapp/settings.py b/django_prometheus/tests/end2end/testapp/settings.py index faf00661..168bf93e 100644 --- a/django_prometheus/tests/end2end/testapp/settings.py +++ b/django_prometheus/tests/end2end/testapp/settings.py @@ -119,10 +119,6 @@ "BACKEND": "django_prometheus.cache.backends.locmem.LocMemCache", "LOCATION": os.path.join(_tmp_cache_dir, "locmem_cache"), }, - "native_redis": { - "BACKEND": "django_prometheus.cache.backends.redis.NativeRedisCache", - "LOCATION": "redis://127.0.0.1:6379/0", - }, "redis": { "BACKEND": "django_prometheus.cache.backends.redis.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", diff --git a/django_prometheus/tests/end2end/testapp/test_caches.py b/django_prometheus/tests/end2end/testapp/test_caches.py index a2152e0b..6c484716 100644 --- a/django_prometheus/tests/end2end/testapp/test_caches.py +++ b/django_prometheus/tests/end2end/testapp/test_caches.py @@ -9,7 +9,6 @@ "memcached.PyMemcacheCache", "filebased", "locmem", - "native_redis", "redis", ] diff --git a/requirements.txt b/requirements.txt index d83bb294..e4b568e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ -django-redis>=4.12.1 prometheus-client>=0.12.0 pip-prometheus>=1.2.1 mysqlclient @@ -9,4 +8,5 @@ pylibmc pymemcache python-memcached setuptools<72.0.0 +redis wheel