django之memcached缓存系统

时间:2022-12-22 22:45:05

django其他缓存方法:(https://www.cnblogs.com/jishuweiwang/p/6110809.html

memcached版本 <1.5

1. memcached缓存系统安装

  ·在百度中下载 memcached 安装文件(http://www.runoob.com/memcached/window-install-memcached.html

  ·windows安装(linux安装:http://www.runoob.com/memcached/memcached-install.html):

1> 进入 memcached 目录

     2> 在终端输入:

    · memcachd.exe -d install:安装

    · memcached.exe -d uninstall:卸载

  命令说明:

  · memcached -d start:启动服务

  · memcached -d stop:关闭服务

  · 命令选项:

    · -p使用的TCP端口。默认为11211
    · -m最大内存大小。默认为64M
    · -vv用very vrebose模式启动,调试信息和错误输出到控制台
    · -d作为daemon在后台启动
    · -c最大运行的并发连接数,默认是1024,按照服务器的负载量来设定
    · -P设置保存Memcache的pid文件
    · -l监听的服务器IP地址,如果有多个地址的话
    · -u运行Memcache的用户,默认不能用root启动,所以当前用户为root用户时,需要用-u参数来指定

2. 在django中使用 memcached:

  · 首先要在django运行环境中安装:python-memcached(命令:pip install python-memcached)

    注意:如果没有安装会提示:找不到模块:memcache

· 然后在django中的.py文件中导入:from django.core.cache import cache 模块

  · 在 settings.py 文件中加入配置:

    CACHES = {

      'default': {

         'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

        'LOCATION': [

          '172.19.26.240:11211', # 缓存地址1

          '172.19.26.242:11211', # 缓存地址2

         ]

        }

       }

   CACHES配置参数说明:

    每个缓存后端都可以设置附加参数,控制缓存行为。可配置如下参数:

    1)TIMEOUT

      cache 默认过期时间(seconds),未设置则为300s(5mins)

    2)OPTIONS

      可选项配置,不同的后端,可选项配置不同

    3)KEY_PREFIX

      默认会被自动加到所有缓存 keys 的前端

    4)VERSION

      默认缓存 keys 的 version

    5)KEY_FUNCTION

      生成最终缓存 keys 的函数路径

    6)像locmem, filesystem 和 database 缓存都实现了 cull 策略,参数如下:
     culling 策略参数(OPTIONS中):
      MAX_ENTRIES
      删除旧数据之前,允许在缓存中存放的最大数量,默认:300
      CULL_FREQUENCY
      当缓存数目达到 MAX_ENTRIES 时,就会删除部分缓存,删除率为1/CULL_REQUENCY, 如果 CULL_FREQUENCY = 2 ,当达到 MAX_ENTRIES 时,就会删除一半数据。默认值:3

    CACHES 配置参数概述 - 示例

    CACHES = {
      'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': '/var/tmp/django_cache',
        'TIMEOUT': 60,
      'OPTIONS': {
        'MAX_ENTRIES': 1000
      }
    }
   }

   注意:无效的参数会被忽略,不会影响整个项目

3. memcached的安全性:

  1>方法1:使用 -l 参数设置为只有本地可以连接:这种方式就只能通过本机才能连接,别的机器都不能访问,可以达到最好的安全性

  2>方法2:使用防火墙来关闭指定端口的访问

    ufw enable # 开启防火墙

    ufw disable # 关闭防火墙

    ufw default deny # 防火墙以禁止的方式打开,默认是关闭那些没有开启的端口

    ufw deny 端口号 # 关闭某个端口

    ufw allow 端口号 # 开启某个端口

4. memcached中的API接口:

  地址:http://www.runoob.com/Memcached/Memcached-tutorial.html

  在django中导入from django.core.cache import cache模块后,使用cache.memcached中的方法即可

  

    

django之memcached缓存系统的更多相关文章

  1. 6&period;memcached缓存系统

    1.memcached的安装和参数 memcached缓存系统一般还是部署在linux服务器上,所以这里只介绍linux上memcache的安装 首先切换到root用户,然后apt-get insta ...

  2. Linux下搭建Memcached缓存系统

    首先说下抱歉,博主近期单位经常加班.博客更新有点慢.希望大家理解,草稿箱里存了不少内容,等不忙时候一点点填坑~ 在一般的站点开发学习时候.都会把数据存放在RDBMS(关系型数据库系统(Relation ...

  3. Memcached 缓存系统简介

    memcached官网:http://memcached.org/ What is Memcached? Memcached是一个*开源的,高性能,高并发,分布式内存对象缓存系统. Memcache ...

  4. &lpar;转&rpar;实战Memcached缓存系统(1)Memcached基础及示例程序

    1.Cache定义 (1)狭义概念:用于CPU的相对高速处理与主存(Main Memory)的相对低速处理的之间起到协调功能的硬件设备. (2)广义概念:用于速度相差较大的两种硬件之间,起到协调两者数 ...

  5. &lpar;转&rpar;实战Memcached缓存系统(7)Memcached的一些基础FAQ

    1. Memcached是什么? Memcached是分布式的内存对象缓存系统. 2. Memcached的基本数据结构是什么? Memcached是基于Key/Value对的HashMap.每一对, ...

  6. Django 学习之---缓存系统

    一.浏览器缓存机制 Cache-control策略(重点关注) Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务 ...

  7. &lpar;转&rpar;实战Memcached缓存系统(8)Memcached异步实时读写问题的解决方案SAC

    在使用Memcached时,一般实时读写的场景并不多见.但多是Memcached写入后,在一定时间后才会有读操作.但是如果应用场景,是写入后瞬间即会有读操作呢?似乎没有什么特别之处,我们依然可以这样写 ...

  8. &lpar;转&rpar;实战Memcached缓存系统(4)Memcached的CAS协议

    1. 什么是CAS协议 很多中文的资料都不会告诉大家CAS的全称是什么,不过一定不要把CAS当作中国科学院(China Academy of Sciences)的缩写.Google.com一下,CAS ...

  9. &lpar;转&rpar;实战Memcached缓存系统(3)Memcached配置参数初解

    一.基本参数 在我们第一次安装Memcached时,一般都是用过这个命令: memcached -m 512 -u root -d -l 127.0.0.1 -p 11211 我们先来解释这几个参数的 ...

随机推荐

  1. es let2

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. URL 路径长度限制(错误:指定的文件或文件夹名称太长)

    本节讨论 URL 的构成.SharePoint 2010 构建 URL 的方式.URL 的编码和加长以及作为其他 URL 中的参数传递的方式. SharePoint URL 的构成 SharePoin ...

  3. js对象定义

    JS中的对象定义方式,跟服务端,还是有很大差别的! 现在来说一下JS类的定义 工厂模式 function creatHeven(name,age){ var temp =new Object(); t ...

  4. 关于C&plus;&plus;类中的成员

    突然发现,如果C++的类成员中存在共有的成员,则可以通过指针的偏移来访问私有的成员变量,当然前提是对内存对齐比较清楚.只要骗过了编译器就可以为所欲为了. #include <cstdio> ...

  5. 【XML配置文件读取】使用jdom读取XML配置文件信息

    在项目中我们经常需要将配置信息写在配置文件中,而XML配置文件是常用的格式. 下面将介绍如何通过jdom来读取xml配置文件信息. 配置文件信息 <?xml version="1.0& ...

  6. quartz 数据表字典

    首次整理,可能有错误,还有少许的未整理,希望看到的人能给点补充(包括指点错误) 表名 表说明 自定义触发器 QRTZ_BLOB_TRIGGERS 列名(英) 列名(中) 数据类型 列长度 是否为空 列 ...

  7. Python Cookie HTTP获取cookie并处理

    Cookie模块同样是Python标准库中的一员,它定义了一些类来解析和创建HTTP 的 cookie头部信息. 一.创建和设置Cookie >>> import Cookie #导 ...

  8. 使用python&plus;flask让你自己api(教程源代码)

    1.背景 ok,这可能是很多朋友和我一样经常使用的各种api,例facebook的.github的.甚至微信api.因此,很多人都想使自己的api.在线教程在这方面它是非常小的,今天,我做了一个平稳, ...

  9. Android5&period;1设备无法识别exFAT文件系统的64G TF卡问题

    64G TF卡刚买回来的时候默认exFAT文件系统,在电脑端(XP和WIN7)可以识别,但在我们Android5.1S设备无法识别,采用guiformat工具格式化为FAT32文件系统后才可以正常识别 ...

  10. (6)STM32使用HAL库实现modbus的简单通讯

    1.判断地址.校验 2.读取本机数据并校验打包 3.发送数据包 4.本机数据长度比要读取的长度短怎么办 4.校验错误怎么办