http://django-redis-chs.readthedocs.io/zh_CN/latest/
参考资料
'''
为什么要使用缓存服务器
1.提高服务器查询性能,因为放在缓存服务器中的数据一般都是存储在内存当中的,内存中的数据读写效率更高
2.减少服务器端的压力,提高服务器的查询性能
3.减少数据库频繁查询的压力,提升mysql的使用率
'''
django配置缓存相对来说稍微简单,只需要在settings中配置一下就可以了
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
然后在views视图中就可以直接引用了
from django.shortcuts import render,HttpResponse
import json
import random
import time
from datetime import datetime
# cache django中的缓存
from django.core.cache import cache
from django.db import connection
from .models import Student
# Create your views here.
把数据在redis缓存中存储一份,之后就可以在redis数据库中查找数据了
def index(request):
# 以访问的url地址作为key,先从redis中读取数据,如果读取到直接返回数据
url = request.path
response_content = cache.get(url)
if response_content:
return HttpResponse(content=response_content)
else:
stus = Student.objects.all()
# 该访问地址没有存储过数据
response = render(request,'index.html',{'stus':stus})
# 以url地址作为key,response.content 作为值存储到redis缓存服务器中
cache.set(url,response.content)
# 查看ORM执行的sql语句
print(connection.queries)
return response
使用redis里面的存储来做session的搜索数据库
def search(reqeust):
if reqeust.method == 'POST':
ua = reqeust.POST.get('ua')
value = cache.get(ua)
if value:
# session使用redis作为session的存储引擎
reqeust.session['key'] = '123456'
data = value
else:
# 取出需要查询的数据,以ua作为key,取出的数据作为值,存储到redis中
data = {'username':'张三','age':22,'phone':110}
data = json.dumps(data)
session_value =reqeust.session['key']
print(session_value)
# key value
cache.set(ua,data)
response = render(reqeust,'result.html',{'datas':json.loads(data)})
return response
另外使用Redis作为session存储引擎的话也需要在settings中配置一下
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"