django-Redis缓存

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"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值