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实现博客文章爬虫示例
Feb 26 Python
python实现sublime3的less编译插件示例
Apr 27 Python
Python入门篇之正则表达式
Oct 20 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
详解Python的三种可变参数
May 08 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
python 画条形图(柱状图)实例
Apr 24 Python
python3.x中安装web.py步骤方法
Jun 23 Python
如何在C++中调用Python
May 21 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 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写的采集程序
2007/03/16 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
jQuery each()小议
2010/03/18 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
在Python中COM口的调用方法
2019/07/03 Python
Python 控制终端输出文字的实例
2019/07/12 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
PHP如何自定义函数
2016/09/16 面试题
推荐信模板
2014/05/09 职场文书
经济贸易系求职信
2014/08/04 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server
PyQt5实现多张图片显示并滚动
2021/06/11 Python
MongoDB使用场景总结
2022/02/24 MongoDB