victory的博客

长安一片月,万户捣衣声

0%

Django | django配置redis缓存

  • django配置redis作为缓存后端

1.django项目中配置redis缓存后端

在[project_name]/[project_name]/settings.py中添加以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
REDIS_HOST = 'localhost'  # 主机ip
REDIS_PORT = 6379 # 端口号
REDIS_DB = 0 # 选择0号数据库
# 配置Django缓存后端为Redis
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': f'redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_DB}',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
'SERIALIZER': 'django_redis.serializers.json.JSONSerializer', # 使用JSON序列化
}
}
}
# 配置Django的会话后端为Redis
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'default'

2.查询数据库(先查缓存,再查数据库,缓存中不存在时从数据库查并将数据放入缓存)

在[project_name]/[app_name]/views.py中编写视图使用缓存

1
2
3
4
5
6
7
8
9
10
11
12
def redisascache(request):
# 查缓存
data = cache.get('my_key')

# 缓存中不存在该数据,从数据库中查并将数据加入到缓存中
if data is None:
data = "OK"

cache.set("my_key", data, 300)

# 相应
return HttpResponse(data)