美文网首页
Django缓存

Django缓存

作者: 佐卡ww | 来源:发表于2018-08-08 19:57 被阅读0次

为什么使用缓存?以空间换时间。

https://docs.djangoproject.com/zh-hans/2.0/topics/cache/

(*)缓存框架的核心目标

    -- 较少的代码

            缓存应该尽可能快

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

    -- 一致性

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

    -- 可扩展性

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

----------------------------------------------------------------------------------------------------------------------------------

缓存

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

(1)基于Memcached缓存,不用了

(2)使用数据库进行缓存(一般用resis,Django里面没有内置redis缓存,所以需要自己安装第三方插件),现在一般是用这个,数据库中的数据关系越复杂,缓存效率越低,一张表中有十万条数据可能比两万条数据级联了三张表效率还要高。

(3)使用文件进行存,文件进行取

(4)使用本地内存进行缓存,速度快,但是容易丢失,而且别人访问不了你电脑里的缓存。

(5)提供缓存扩展接口(也就是第三方插件)

--------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------

2. Django中实现用redis做缓存

    使用Redis做缓存 常见的有两个实现

(1)django-redis

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

(2)django-redis-cache

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

-----------------------------------------------------------------------------------------------------------------------------------

缓存插件    安装——》配置——》使用

(1)安装

pip install django-redis / django-redis-cache

(2)配置

    和内置的缓存配置基本一致(将下面代码直接粘贴到settings文件中)

CACHES={"default": {"BACKEND":"django_redis.cache.RedisCache","LOCATION":"redis://127.0.0.1:6379/1","OPTIONS": {"CLIENT_CLASS":"django_redis.client.DefaultClient",        }    }}

(3)用法和内置缓存使用一样

创建缓存表

python manage.py createcachetable [table_name]

缓存配置

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

fromdjango.core.cacheimportcachescache=caches['cache_name']

----- 获取cache

fromdjango.core.cacheimportcache

----缓存操作

    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

相关文章

  • 第十一天

    drf的缓存设置 django本身是支持缓存的,drf的缓存是在django缓存上的二次开发。安装drf exte...

  • django-cache

    以前学习django缓存,视频看的云里雾里,今天读到一篇文章豁然开朗,以此记录。感谢!链接:[Django缓存和信号

  • django项目中使用 memcached (安装与使用)

    在django 中,如果你想提升请求的响应速度,那么使用缓存是很好的办法。django的官网上介绍了如何引入缓存,...

  • 33_Django的缓存

    Django的缓存 全站缓存: 单页面缓存: 页面局部缓存: 缓存的位置:(只需要改配置文件) 内存 文件 数据库...

  • django-settings里redis连接与缓存配置

    Django-redis的缓存配置 配置session存储

  • Django缓存

    为什么使用缓存?以空间换时间。 https://docs.djangoproject.com/zh-hans/2....

  • Django - 缓存

    Python的web框架,就Django支持缓存工具。 根据缓存存放位置可以分为: 一、配置 1.开发调试此为开始...

  • django缓存

    缓存就是将你常用的数据放在内存里面,方便大量的访问,每次请求过来之后,django都会优先访问缓存,看看缓存里面有...

  • django缓存

    django-redis官网文档:http://django-redis-chs.readthedocs.io/z...

  • django 缓存

    连接地址 PythonCourse/web/django at master · RockTeach/Python...

网友评论

      本文标题:Django缓存

      本文链接:https://www.haomeiwen.com/subject/edzxbftx.html