python- Django 缓存机制

185 阅读2分钟

利用缓存访问一些数据可以减少数据库的访问,从而可以提高网站性能。缓存技术在很多网站中被使用,而缓存的解决方案也是各式各样。

缓存是将一些常用的数据保存内存或者 memcache 中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或 memcache 的缓存中去取得数据,然后返回给用户。

Django 提供了6 种内存缓存机制,分别为

  • 开发调试缓存(为开发调试使用,实际上不使用任何操作);
  • 内存缓存(将缓存内容缓存到内存中);
  • 文件缓存(将缓存内容写到文件 );
  • 数据库缓存(将缓存内容存到数据库);
  • memcache 缓存(包含两种模块,python-memcached或pylibmc.)

缓存存在的意义是什么呢?

比如你访问一个页面,有些时候第一次打开你发现会非常的慢,但过会儿刷新发现比第一次要快很多,这可能就是缓存发挥作用了。

Django 带有一个强大的缓存系统,它提供了不同级别的缓存粒度:你可以缓存特定视图,也可以只缓存难生成的部分内容,或者缓存整个网站

可以通过配置文件的缓存配置来指明你的缓存数据所存放的位置,比如文件系统,数据库或内存

settings.py中有个全局变量CACHES

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [
            '172.19.26.240:11211', # 缓存服务器地址以及端口
            '172.19.26.242:11211',
        ]
    }
}

因为缓存的数据存储在内存中,如果服务器崩溃,那么数据将会丢失。显然,内存不适用于持久数据存储,因此不要依赖基于内存的缓存作为你唯一的数据存储