Django中使用memcached提升性能
 
环境:
ubuntu12.04

python2.7
django1.4
 
memcached安装
 
ubuntu12.04中安装(默认安装版本1.4.13)
sudo apt-get install memcached

 
 
 
安装memcached绑定
python-memcached: 下载地址ftp://ftp.tummy.com/pub/python-memcached/
 
安装python-memcached:
wget -c ftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.48.tar.gz
sudo apt-get install python-setuptools #注意先安装python-setuptools,否则可能在后面安装时出现can't import setuptools的错误
tar zxvf python-memcached-1.48.tar.gz
cd python-memcached-1.48
sudo python setup.py install    #注意使用sudo

 
启动memcached
 
# /usr/local/bin/memcached -d -m 128 -u root  -p 11212  -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是128MB
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址,如果有多个地址的话,用空格分隔
-p是设置Memcache监听的端口,我这里设置了11212,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024
-P是设置保存Memcachepid文件,我这里是保存在 /tmp/memcached.pid
-f:指定chunk增长因子大小,1.2版本该默认值为21.4版本该默认值为1.25,该值越小所能提供的chunk间隔越小,可以减少内存的浪费
-vvv:主要从控制台输出信息
 启动成功后,用psef|grep memcached 可以看到进程启动
netstatntl 可以看到11212端口被监听

 
测试memcached安装是否成功
python
>>>import memcached
>>>mc = memcache.Client(['127.0.0.1:11211'],debug=0)
>>>mc.set('key_a','test')
>>>value = mc.get('key_a')
>>>print value
test
>>>mc.delete('key_a')

 
 
配置django的memcached
修改setting.py
添加
CACHES = {
    'default' : {
        'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION' : '127.0.0.1:11211',
    }
}

注意:
django中memcached对key要求不超过250个字符,不能包含空白和控制字符,处理方式见https://docs.djangoproject.com/en/1.4/topics/cache/#cache-key-warnings
 
实际使用e.g.
from django.core.cache import cache
from django.db import TestModel

def index(request):
    data = cache.get('testkey')
    if data is not None:
        return HttpResponse(data)
    data = 'You request testvalue'
    cache.set('key1',data)
    return HttpResponse(data)

   
 
标签: ,
本文连接地址: http://www.fresker.com/old2/archives/567 (转载注明出处)

回复

目前暂无评论

Sorry, 评论已关闭.