Django实现内容缓存实例方法


Posted in Python onJune 30, 2020

Django实现内容缓存:

1、内存缓存

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',   # 指定缓存使用的引擎
    'LOCATION': 'unique-snowflake',   # 写在内存中的变量的唯一值 
    'TIMEOUT':300,   # 缓存超时时间(默认为300秒,None表示永不过期)
    'OPTIONS':{    
      'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                    
    }   
  }
}

2、文件缓存

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',#指定缓存使用的引擎
    'LOCATION': '/var/tmp/django_cache',   #指定缓存的路径
    'TIMEOUT':300,       #缓存超时时间(默认为300秒,None表示永不过期)
    'OPTIONS':{    
      'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                      
    }
  }      
}

3、数据库缓存

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.db.DatabaseCache',    # 指定缓存使用的引擎
    'LOCATION': 'cache_table',      # 数据库表        
    'OPTIONS':{    
      'MAX_ENTRIES': 300,        # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                    
    }   
  }      
}

4、Mrmcache缓存

使用python-memcached模块连接memcache

settings.py文件配置

CACHES = {
  'default': {  
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',# 指定缓存使用的引擎
    'LOCATION': '192.168.10.100:11211',  # 指定Memcache缓存服务器的IP地址和端口
    'OPTIONS':{    
      'MAX_ENTRIES': 300,        # 最大缓存记录的数量(默认300)
      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
      'CULL_FREQUENCY': 3,                      
    }
  }
}

使用pylibmc模块连接memcache

settings.py文件配置

CACHES = {
    'default': {   
      # 指定缓存使用的引擎
      'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache'
      # 指定本机的11211端口为Memcache缓存服务器
      'LOCATION':'192.168.10.100:11211',                 
      'OPTIONS':{     
        'MAX_ENTRIES': 300,# 最大缓存记录的数量(默认300)
        # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
        'CULL_FREQUENCY': 3, 
      },   
    }
  }

知识点扩展:

1.缓存的简介

在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.

当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.

缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户.

2.Django提供了6种缓存方式

  1. 开发调试缓存
  2. 内存缓存
  3. 文件缓存
  4. 数据库缓存
  5. Memcache缓存(使用python-memcached模块)
  6. Memcache缓存(使用pylibmc模块)

到此这篇关于Django实现内容缓存实例方法的文章就介绍到这了,更多相关Django实现内容缓存内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
Sanic框架应用部署方法详解
Jul 18 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 Python
Opencv求取连通区域重心实例
Jun 04 Python
Python 基于jwt实现认证机制流程解析
Jun 22 Python
无惧面试,带你搞懂python 装饰器
Aug 17 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 #Python
Python闭包装饰器使用方法汇总
Jun 29 #Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 #Python
Python接口测试环境搭建过程详解
Jun 29 #Python
python字典的值可以修改吗
Jun 29 #Python
python怎么自定义捕获错误
Jun 29 #Python
python打开文件的方式有哪些
Jun 29 #Python
You might like
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
js loading加载效果实现代码
2009/11/24 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
图解Python变量与赋值
2018/04/03 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
淘宝中秋节活动方案
2014/01/31 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
Python实现byte转integer
2021/06/03 Python
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android