zoukankan      html  css  js  c++  java
  • Django项目总结:Cache

    Cache

    【缓存框架的核心目标】

    -- 较少的代码

      -- 缓存应该尽可能快

      --因此围绕缓存后端的所有框架代码应该保持在绝对最小值,特别是对于获取操作

    -- 一致性

      -- 缓存API应该是提供跨越不同缓存后端的一致接口

    -- 可扩展性

      -- 基于开发人员的需求,缓存API应该可以在应用程序级别扩展

     

    【缓存】

    -- django内置了缓存框架,并提供了几种常用的缓存

      -- 基于Memcached缓存

      -- 使用数据库进行缓存

      -- 使用文件系统进行缓存

      -- 使用本地内存进行缓存

      -- 提供缓存扩展接口

     

    【缓存配置】

    1.创建缓存表

    python manage.py createcachetable [table_name]

    2.缓存配置

    CACHES = {    

      'default': {        

        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',        

        'LOCATION': 'my_cache_table',        

        'TIMEOUT': '60',        

        'OPTIONS': {             

          'MAX_ENTRIES': '300',        

        },        

        'KEY_PREFIX': 'rock',        

        'VERSION': '1',    

    } }

     

    【缓存使用】

    -- 在视图中使用(使用最多的场景)

    -- @cache_page()(装饰器)

      -- time 秒 60*5 缓存五分钟

      -- cache 缓存配置, 默认default,

      -- key_prefix 前置字符串

    【缓存底层】

    -- 获取cache(多个缓存)

      -- from django.core.cache import cachescache = caches['cache_name']

    -- 获取cache(单个缓存)

      -- from django.core.cache import cache

    -- 缓存操作

      -- cache.set

        -- key

        -- value

        -- timeout

      -- get

      -- add

      -- get_or _set

      -- get_many

      -- set_many

      -- delete

      -- delete_many

      -- clear

      -- incr 增加

        -- incr(key, value) key对应的值上添加 value

      -- decr 减少

        -- decr(key, value) key对应的值上减少value

        -- 如果value不写,默认变更为1

    【使用Redis做缓存】

    -- 常见的有两个实现

      -- django-redis

        -- http://django-redis-chs.readthedocs.io/zh_CN/latest/#django

      -- django-redis-cache

        -- https://pypi.python.org/pypi/django-redis-cache/

    -- 配置和内置的缓存配置基本一致

    CACHES = {
        'default': {
            'BACKEND': 'django_redis.cache.RedisCache',
            'LOCATION': 'redis://127.0.0.1:6379/1',
            'OPTIONS': {
                'CLIENT_CLASS': 'django_redis.client.DefaultClient',
            },
            'TIMEOUT': 60 * 5,
        }
    }

    -- 用法和内置缓存使用一样

    Django支持多缓存

    第一种:设置redis

    第二种:装饰符

    从现在开始,种下梦想中的参天大树
  • 相关阅读:
    Umbraco中更换IndexSet中的NodeType后,搜索页面没有做出对应更改的效果
    Umbraco部署到IIS中权限问题(back office没有权限新建template)
    C控制台密码输入:输入一个字符显示一个星号
    C项目实践--家庭财务管理系统
    C 编程中fseek、ftell的用法总结
    C ++模板的声明和实现为何要放在头文件中?
    头文件与cpp文件为什么要分开写
    printf、sprintf与fprintf 的用法区分
    C编程中fread 、fwrite 用法总结
    C从控制台(stdin)输入带空格的字符串到字符数组中
  • 原文地址:https://www.cnblogs.com/dc2019/p/13350236.html
Copyright © 2011-2022 走看看