python3+django使用memcached

django支持很多缓存,目前我们的小项目只需要key-value式存储,因此使用高性能的memcached作为缓存,如果需要数据的持久化,对数据格式也有一定的要求,可以使用redis。

1. 安装

memcached分为两部分:在系统上安装memcached、安装python3-memcached。

安装memcached需要先安装:libevent=2.1.18

wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz 
tar -zxvf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
make && make install
ls -al /usr/local/lib |grep libevent

如果显示许多libevent_文件则表示安装成功

接下来是 memcached-1.4.35源码安装

wget http://www.memcached.org/files/memcached-1.4.35.tar.gz
tar xf memcached-1.4.35.tar.gz
cd memcached-1.4.35
./configure --with-libevent=/usr/local
make && make install

memcached启动

memcached -d -m 32 -p 11211 -u root -l 127.0.0.1 -p 11211 -c 2048

连接memcached查看状态

telnet 127.0.0.1 11211
stats

会输出memcache的一些连接信息,包括PID,如果需要退出,则执行quit命令即可,除了stats还有很多其他命令可使用

安装python3-memcached

pip3 install python3-memcached

2. django配置

首先在django的settings.py中的MIDDLEWARE的开头和结尾分别添加以下行,请注意,顺序和位置是要严格遵守的。

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
     ....
    'django.middleware.cache.FetchFromCacheMiddleware',
]

接下来配置cache,添加以下行

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': ['127.0.0.1:11211'],
        'TIMEOUT': 60*60,
    }
}

3. 使用

from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_POST
from django.core.cache import cache

@csrf_exempt
@require_POST
def start(request):
    # 写入缓存,timeout表示数据存活时长
    cache.set('key', 'v', timeout=20)
    # 从缓存中读取数据
    response_cache = cache.get('key')
阅读更多
换一批

没有更多推荐了,返回首页