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解析xml中dom元素的方法
Mar 12 Python
初步解析Python中的yield函数的用法
Apr 03 Python
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
pytorch训练imagenet分类的方法
Jul 27 Python
python实现windows壁纸定期更换功能
Jan 21 Python
Python TestCase中的断言方法介绍
May 02 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
Python数据正态性检验实现过程
Apr 18 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
如何在Anaconda中打开python自带idle
Sep 21 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目录函数实现创建、读取目录教程实例
2011/01/13 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
python画环形图的方法
2020/03/25 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
求职个人评价范文
2014/04/09 职场文书
社区工作者个人总结
2015/02/28 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis