—— 阿尔伯特·爱因斯坦

程序员の奇妙冒险

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 action
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet
from 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': '删除成功',
}
)
 
评论(0)
暂无评论来抢沙发吧~