Django的Cache框架(上)

前言

在Web开发中随处可见缓存的使用,在提供页面的响应时间,优化用户体验方面作用非常大。那么在Django中,应该如何使用Cache呢,这里进行简单的介绍。

Cache的作用

given a URL, try finding that page in the cache
if the page is in the cache:
    return the cached page
else:
    generate the page
    save the generated page in the cache (for next time)
    return the generated page

Django自带了一套健壮的Cache系统,可以简单的缓存动态页面,这样就不用每次都去查询数据库并进行页面渲染了。

同样的,这套Cache系统也提供了不同层级的缓存方式:你可以缓存页面、数据、甚至整个网站。

配置不同源的Cache

Memcached

  • 步骤1.

django.core.cache.backends.memcached.MemcachedCache配置到BACKEND中。

  • 步骤2. 配置Cache信息如下
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

Database

  • 步骤1.

django.core.cache.backends.db.DatabaseCache配置到BACKEND中。

  • 步骤2. 配置Cache信息如下
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',
    }
}

其中Location是数据库中Cache表的名字

在开始使用之前还需要运行以下的指令:

python manage.py createcachetable

Filesystem

  • 步骤1.

django.core.cache.backends.filebased.FileBasedCache配置到BACKEND中。

  • 步骤2. 配置Cache信息如下
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': '/var/tmp/django_cache',
    }
}

Local-memory

  • 步骤1.

django.core.cache.backends.locmem.LocMemCache配置到BACKEND中。

  • 步骤2. 配置Cache信息如下
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake',
    }
}

相关阅读

展开剩余53%