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 相关文章推荐
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
python解析json串与正则匹配对比方法
Dec 20 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
pandas 选取行和列数据的方法详解
Aug 08 Python
python TCP包注入方式
May 05 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
Python对excel的基本操作方法
Feb 18 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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学习笔记之二 php入门知识
2011/01/12 PHP
php正则表达匹配中文问题分析小结
2012/03/25 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
用vue和node写的简易购物车实现
2017/04/25 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
简述数据库的设计过程
2015/06/22 面试题
静态变量和实例变量的区别
2015/07/07 面试题
《月迹》教学反思
2014/02/19 职场文书
中学生逃课检讨书
2015/02/17 职场文书
二年级数学教学反思
2016/02/16 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL
mysql主从复制的实现步骤
2021/10/24 MySQL