Skip to content

Commit a711bf8

Browse files
committed
drop django-redis
1 parent ed6b108 commit a711bf8

File tree

4 files changed

+17
-56
lines changed

4 files changed

+17
-56
lines changed
Lines changed: 12 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from django import VERSION as DJANGO_VERSION
2-
from django_redis import cache, exceptions
1+
from django.core.cache.backends.redis import RedisCache
32

43
from django_prometheus.cache.metrics import (
54
django_cache_get_fail_total,
@@ -9,44 +8,17 @@
98
)
109

1110

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):
11+
class NativeRedisCache(RedisCache):
12+
def get(self, key, default=None, version=None):
13+
django_cache_get_total.labels(backend="native_redis").inc()
1714
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
15+
result = super().get(key, default=None, version=version)
16+
except Exception:
17+
django_cache_get_fail_total.labels(backend="native_redis").inc()
2618
raise
19+
if result is not None:
20+
django_cache_hits_total.labels(backend="native_redis").inc()
21+
return result
2722
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
38-
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
23+
django_cache_misses_total.labels(backend="native_redis").inc()
24+
return default

django_prometheus/tests/end2end/testapp/settings.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,9 @@
120120
"BACKEND": "django_prometheus.cache.backends.locmem.LocMemCache",
121121
"LOCATION": os.path.join(_tmp_cache_dir, "locmem_cache"),
122122
},
123-
"redis": {
124-
"BACKEND": "django_prometheus.cache.backends.redis.RedisCache",
125-
"LOCATION": "redis://127.0.0.1:6379/1",
123+
"native_redis": {
124+
"BACKEND": "django_prometheus.cache.backends.redis.NativeRedisCache",
125+
"LOCATION": "redis://127.0.0.1:6379/0",
126126
},
127127
# Fake redis config emulated stopped service
128128
"stopped_redis": {
@@ -136,12 +136,6 @@
136136
},
137137
}
138138

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-
145139

146140
# Internationalization
147141
LANGUAGE_CODE = "en-us"

django_prometheus/tests/end2end/testapp/test_caches.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
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")
11-
7+
_SUPPORTED_CACHES = ["memcached.PyLibMCCache", "memcached.PyMemcacheCache", "filebased", "locmem", "native_redis"]
128

139
class TestCachesMetrics:
1410
"""Test django_prometheus.caches metrics."""
@@ -37,7 +33,7 @@ def test_counters(self, supported_cache):
3733

3834
def test_redis_cache_fail(self):
3935
# Note: test use fake service config (like if server was stopped)
40-
supported_cache = "redis"
36+
supported_cache = "native_redis"
4137
total_before = get_metric("django_cache_get_total", backend=supported_cache) or 0
4238
fail_before = get_metric("django_cache_get_fail_total", backend=supported_cache) or 0
4339
hit_before = get_metric("django_cache_get_hits_total", backend=supported_cache) or 0

requirements.txt

Lines changed: 0 additions & 1 deletion
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

0 commit comments

Comments
 (0)