Django缓存

​ 网站访问效率优化的一大方法,缓存(cache)。缓存针对动态网站起作用居多,动态网站的数据来源于数据库或者其他的存储容器。当请求页面的时候,我们需要首先查询数据,让后动态的渲染数据,当数据量大并且访问频繁的时候,容易导致响应效率变第,服务器压力变大。

​ 所以,在第一次访问,就将数据库查询的数据先放到一个地方,这个地方可以是内存,数据库,本地当中,然后,之后访问同样的数据的时候,直接访问刚才存放的地方,而不是重新查询,那么这种技术就叫做缓存。

存储缓存常用的方式:

​ Memcache缓存:分布式的高速缓存系统,通常用来提高网站的访问速度。

在本地安装Memcache服务。

​ 下载解压缓存包,在解压目录下,以管理员身份打开命令行。

memcached.exe -d install

在这里插入图片描述

安装django-memcache
pip install python-memcached
到global_settings当中复制cache配置结构到自己的settings当中进行配置。

在这里插入图片描述

在这里插入图片描述

settings配置
#cache需要有自己的配置,配置的结构,用global_settings里的配置
#D:\Anaconda\envs\DjangoPath\Lib\site-packages\django\conf

#本地缓存
 CACHES = {
     'default': {
         'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',#默认本地缓存
     }
 }

    # memcache缓存
 CACHES = {
     'default': {
         'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',#声明使用memcache缓存
         'LOCATION':[
             '127.0.0.1:11211'
         ]#memcache
     }
 }

#Redis数据库缓存
CACHES = {
     'default': {
         'BACKEND': 'django_redis.cache.RedisCache',#声明使用RedisCache缓存
         'LOCATION':[
             'redis://127.0.0.1:6379/1'
         ],#memcache地址
        'OPTIONS':{
             'CLIENT_CLASS':'django_redis.client.DefaultClient'
         }
     }
 }


# sqlite数据库缓存
python manage.py createcachetable Tab_name #创建对应存放缓存的数据表
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION':'cache_table',#存放数据库的表
    }
}

缓存使用的方式:

全栈粒度缓存

​ Django 全栈缓存通过缓存配置还有中间件来声明

​ 首先配置settings的中间件,配置的位置必须一首一尾

在这里插入图片描述

在这里插入图片描述

 CACHE_MIDDLEWARE_KEY_PREFIX = '' #同一个django下当多个网站共享缓存的时候,可以将该配置指向当前网站的识别,这个识别通常是域名,也可以是其他可以唯一标识该网站的字符,目的为了防止多个网站共享缓存,缓存混淆
CACHE_MIDDLEWARE_SECONDS = 600 #全局缓存的寿命

视图粒度缓存

在这里插入图片描述

路由粒度缓存

在开发过程当中,是否有可能使用不同的路由指向同一个视图。比如商品的上架和下架功能,不同的路由,指向同一个视图,这个时候就需要针对路由进行缓存

在这里插入图片描述

页面粒度缓存

在这里插入图片描述

底层缓存接口:

​ Set 设置cache

​ Get 获取 cache

​ Add 添加 cache

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值