Skip to content

Commit 52c6c43

Browse files
committed
drop django-redis
1 parent ed6b108 commit 52c6c43

File tree

4 files changed

+28
-51
lines changed

4 files changed

+28
-51
lines changed
Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from django import VERSION as DJANGO_VERSION
2-
from django_redis import cache, exceptions
1+
from warnings import deprecated
2+
from django.core.cache.backends.redis import RedisCache
33

44
from django_prometheus.cache.metrics import (
55
django_cache_get_fail_total,
@@ -9,44 +9,19 @@
99
)
1010

1111

12-
class RedisCache(cache.RedisCache):
13-
"""Inherit redis to add metrics about hit/miss/interruption ratio"""
14-
15-
@cache.omit_exception
16-
def get(self, key, default=None, version=None, client=None):
12+
class NativeRedisCache(RedisCache):
13+
def get(self, key, default=None, version=None):
14+
django_cache_get_total.labels(backend="native_redis").inc()
1715
try:
18-
django_cache_get_total.labels(backend="redis").inc()
19-
cached = self.client.get(key, default=None, version=version, client=client)
20-
except exceptions.ConnectionInterrupted as e:
21-
django_cache_get_fail_total.labels(backend="redis").inc()
22-
if self._ignore_exceptions:
23-
if self._log_ignored_exceptions:
24-
cache.logger.error(str(e))
25-
return default
16+
result = super().get(key, default=None, version=version)
17+
except Exception:
18+
django_cache_get_fail_total.labels(backend="native_redis").inc()
2619
raise
20+
if result is not None:
21+
django_cache_hits_total.labels(backend="native_redis").inc()
22+
return result
2723
else:
28-
if cached is not None:
29-
django_cache_hits_total.labels(backend="redis").inc()
30-
return cached
31-
else:
32-
django_cache_misses_total.labels(backend="redis").inc()
33-
return default
34-
35-
36-
if DJANGO_VERSION >= (4, 0):
37-
from django.core.cache.backends.redis import RedisCache as DjangoRedisCache
24+
django_cache_misses_total.labels(backend="native_redis").inc()
25+
return default
3826

39-
class NativeRedisCache(DjangoRedisCache):
40-
def get(self, key, default=None, version=None):
41-
django_cache_get_total.labels(backend="native_redis").inc()
42-
try:
43-
result = super().get(key, default=None, version=version)
44-
except Exception:
45-
django_cache_get_fail_total.labels(backend="native_redis").inc()
46-
raise
47-
if result is not None:
48-
django_cache_hits_total.labels(backend="native_redis").inc()
49-
return result
50-
else:
51-
django_cache_misses_total.labels(backend="native_redis").inc()
52-
return default
27+
RedisCache = deprecated("RedisCache is deprecated, use NativeRedisCache instead")(NativeRedisCache)

django_prometheus/tests/end2end/testapp/settings.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@
120120
"BACKEND": "django_prometheus.cache.backends.locmem.LocMemCache",
121121
"LOCATION": os.path.join(_tmp_cache_dir, "locmem_cache"),
122122
},
123+
"native_redis": {
124+
"BACKEND": "django_prometheus.cache.backends.redis.NativeRedisCache",
125+
"LOCATION": "redis://127.0.0.1:6379/0",
126+
},
123127
"redis": {
124128
"BACKEND": "django_prometheus.cache.backends.redis.RedisCache",
125129
"LOCATION": "redis://127.0.0.1:6379/1",
@@ -136,12 +140,6 @@
136140
},
137141
}
138142

139-
if DJANGO_VERSION >= (4, 0):
140-
CACHES["native_redis"] = {
141-
"BACKEND": "django_prometheus.cache.backends.redis.NativeRedisCache",
142-
"LOCATION": "redis://127.0.0.1:6379/0",
143-
}
144-
145143

146144
# Internationalization
147145
LANGUAGE_CODE = "en-us"

django_prometheus/tests/end2end/testapp/test_caches.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import pytest
2-
from django import VERSION as DJANGO_VERSION
32
from django.core.cache import caches
43
from redis import RedisError
54

65
from django_prometheus.testutils import assert_metric_equal, get_metric
76

8-
_SUPPORTED_CACHES = ["memcached.PyLibMCCache", "memcached.PyMemcacheCache", "filebased", "locmem", "redis"]
9-
if DJANGO_VERSION >= (4, 0):
10-
_SUPPORTED_CACHES.append("native_redis")
7+
_SUPPORTED_CACHES = [
8+
"memcached.PyLibMCCache",
9+
"memcached.PyMemcacheCache",
10+
"filebased",
11+
"locmem",
12+
"native_redis",
13+
"redis",
14+
]
1115

1216

1317
class TestCachesMetrics:

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
django-redis>=4.12.1
21
black
32
flake8
43
prometheus-client>=0.12.0
@@ -10,5 +9,6 @@ pytest-django
109
pylibmc
1110
pymemcache
1211
python-memcached
12+
redis
1313
setuptools<72.0.0
14-
wheel
14+
wheel

0 commit comments

Comments
 (0)