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

    第二种:装饰符

    从现在开始,种下梦想中的参天大树
  • 相关阅读:
    升级windows 11小工具
    windows 10更新升级方法
    您需要了解的有关 Oracle 数据库修补的所有信息
    Step by Step Apply Rolling PSU Patch In Oracle Database 12c RAC Environment
    Upgrade Oracle Database Manually from 12.2.0.1 to 19c
    如何应用版本更新 12.2.0.1.210420(补丁 32507738 – 2021 年 4 月 RU)
    xtrabackup 安装、备份和恢复
    Centos_Lvm expand capacity without restarting CentOS
    Centos_Lvm_Create pv vg lv and mount
    通过全备+relaylog同步恢复被drop的库或表
  • 原文地址:https://www.cnblogs.com/dc2019/p/13350236.html
Copyright © 2011-2022 走看看