PythonDjangoPython
2025-11-27 13:41阅读:22评论:0
python django 集成redis
安装必要组件库 Django 配置 在 Django 项目的 settings.py 文件中添加以下配置 验证 创建 redis_service.py 文件 使用
_PROTECTED0__
1
2
3
4
5
# 客户端库,用于与 Redis 服务器进行交互pip3 install redis# 安装用于在 Django 中集成 Redis 的库pip3 install django-redis _PROTECTED0__
- 在 Django 项目的 settings.py 文件中添加以下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
# 缓存配置CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://192.168.1.42:6379/0', # Redis 地址和数据库编号 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', # 'PASSWORD': 'your_password', # 如果有密码 'SOCKET_CONNECT_TIMEOUT': 5, # 连接超时(秒) } }} _PROTECTED0_
- 创建 redisservice.py 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"""redis 缓存服务"""from django_redis import get_redis_connection class RedisService: def __init__(self): self.conn = get_redis_connection("default") def set_value(self, key, value, timeout=None): self.conn.set(key, value, timeout) def get_value(self, key): return self.conn.get(key) def delete_value(self, key): self.conn.delete(key) def get_all_keys(self, pattern='*'): return self.conn.keys(pattern) - 使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from rest_framework.decorators import actionfrom rest_framework.response import Responsefrom rest_framework.viewsets import ModelViewSetfrom core.service.redis_service import RedisService class DemoRedisApi(ModelViewSet): """ 数据存入redis """ @action(methods=['get'], detail=False, url_path='addValue', url_name='addValue') def addValue(self, request): redis_service = RedisService() key = 'python-redis' value = 'test_value' redis_service.set_value(key, value, timeout=3600) # 设置 key 的过期时间为 1 小时 return Response( { 'success': True, 'message': 'OK', } ) """ 获取redis缓存 """ @action(methods=['get'], detail=False, url_path='getValue', url_name='getValue') def getValue(self, request): redis_service = RedisService() key = 'python-redis' value = redis_service.get_value(key) return Response( { 'success': True, 'message': value, } ) """ 删除redis缓存 """ @action(methods=['get'], detail=False, url_path='deleteValue', url_name='deleteValue') def deleteValue(self, request): redis_service = RedisService() key = 'python-redis' value = redis_service.delete_value(key) return Response( { 'success': True, 'message': '删除成功', } )