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通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
python实现简单多人聊天室
Dec 11 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
对Python3 * 和 ** 运算符详解
Feb 16 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
tensorflow如何批量读取图片
Aug 29 Python
执行Python程序时模块报错问题
Mar 26 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 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 mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
Aptana调试javascript图解教程
2009/11/30 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
vue之延时刷新实例
2019/11/14 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
python监控键盘输入实例代码
2018/02/09 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
pandas分区间,算频率的实例
2019/07/04 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
室内设计实习自我鉴定
2013/09/25 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
2015秋学期开学寄语
2015/05/28 职场文书