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插入排序算法的实现代码
Nov 21 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
在centos7中分布式部署pyspider
May 03 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
用python编写第一个IDA插件的实例
May 29 Python
在python中使用xlrd获取合并单元格的方法
Dec 26 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
Jul 09 Python
Python变量及数据类型用法原理汇总
Aug 06 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
BBS(php & mysql)完整版(三)
2006/10/09 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
JavaScript类和继承 constructor属性
2010/03/04 Javascript
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
javascript中this的四种用法
2015/05/11 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
Python 不同对象比较大小示例探讨
2014/08/21 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
优秀研究生自我鉴定
2013/12/04 职场文书
班主任寄语大全
2014/04/04 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
布达拉宫的导游词
2015/02/02 职场文书
预备党员个人总结
2015/02/14 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js