1.在 Django 中实现 Redis 缓存,可以按照以下步骤进行操作:
- 安装 Redis:在服务器端安装 Redis 数据库。
- 安装 django-redis:使用 pip 命令安装 django-redis 库。
- 配置 settings.py:在 Django 项目的 settings.py 文件中添加 Redis 缓存的配置。示例代码如下:
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://your_host_ip:6379",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "yourpassword",
},
}
}
redis配置在视图函数中的用法
from django.core.cache import cache
from django.http import JsonResponse
import time
def cachedView(request):
# 尝试从缓存中获取数据
cachedData = cache.get('cached_key')
if cachedData:
return JsonResponse({'data': cachedData})
# 如果缓存中没有数据,则生成并设置缓存
data = {'message': 'This data is generated at ' time.strftime("%Y-%m-%d %H:%M:%S")}
cache.set('cached_key', data, 60) # 缓存 60 秒
return JsonResponse(data)
假如需要更新可以判断前后数据是否发生变化,如果变化了就进行缓存更新
可以设置一个方法,便于更新判断
def should_refresh_cache():
# 在此处定义缓存刷新的条件
# 例如,检查某个时间戳、数据是否发生变化等
return True # 根据实际情况返回 True 或 False
CachedView
视图函数首先尝试从 Redis 缓存中获取名为 cached_key
的数据。如果存在,则直接返回缓存的数据。如果不存在,则生成新的数据,将其存储在缓存中并设置 60 秒的过期时间,然后返回新生成的数据。
2.django项目添加异步操作
-
安装依赖
- 安装
Celery
:pip install celery
- 安装消息中间件,例如
Redis
(用于存储任务队列):pip install redis
- 安装
-
配置
Celery
- 创建一个
celery.py
文件,通常位于项目的根目录或应用目录下。
- 创建一个
from celery import Celery
app = Celery('your_project_name')
# 配置消息中间件
app.conf.broker_url ='redis://localhost:6379/0'
# 配置结果存储(可选)
app.conf.result_backend ='redis://localhost:6379/1'
# 加载 Django 的设置
app.config_from_object('django.conf:settings', namespace='CELERY')
# 自动发现任务
app.autodiscover_tasks()
- 在 Django 的
settings.py
中添加相关设置
INSTALLED_APPS = [
...
'celery',
]
# 其他 Celery 相关设置
CELERY_BROKER_URL ='redis://localhost:6379/0'
CELERY_RESULT_BACKEND ='redis://localhost:6379/1'
- 创建异步任务
- 在应用的
tasks.py
文件中定义任务函数
- 在应用的
from celery import shared_task
@shared_task
def long_running_task(arg1, arg2):
# 耗时的操作
pass
在视图或者其他位置对异步任务进行调用
from your_app.tasks import long_running_task
def some_view(request):
long_running_task.delay(arg1, arg2)
# 继续其他操作