PythonTip >> 博文 >> Django

pylibmc:在 Django 中使用缓存

zihua 2013-09-26 01:09:02 点击: 914 | 收藏


pylibmc昨天已经安装好了,并且小试了一把。今天就想把pylibmc用到youflog中。

如果django的版本是1.2或者之前的话 可以去下载django-pylibmc的组件 并且安装起来

使用的方法也很简单 在settings.py中配置

CACHE_BACKEND = 'django_pylibmc.memcached://localhost:11211?timeout=500&binary=1'

如果想使用pylibmc的behaviors,还需要配置这个参数

PYLIBMC_BEHAVIORS = {'tcp_nodelay': True, 'ketama': True}

这样就完成了对pyblicmc的配置,在程序中使用cache就方便了

from django.core.cache import cache

cache.set(key,value)
cache.get(key)
cache.delete(key)

然而在django升级到1.3的时候 pylibmc就已经被支持了,而且settings中的这个变量CACHE_BACKEND就已经被deprecated了,还有一些被depardcated的变量可以参考这里 Deprecated settings。取而带之的是CACHES变量 该变量的值是一个字典类型

CACHES = {
    'default': {
        'BACKEND':
'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [
            '172.19.26.240:11211',
            '172.19.26.242:11211',
        ]
    }
}

当前需要使用的是pylibmc所以 需要把上面的BACKEND替换成 django.core.cache.backends.memcached.PyLibMCCache

pylibmc的behaviors 需要在CACHES添加一个OPTIONS 即可

CACHES = {
    'default': {
        'BACKEND':
'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
        'TIMEOUT':500,
        'OPTIONS':{
            'binary':1,
            'tcp_nodelay':True,
            'ketama':True
        },
    }
}

youflog中已经把缓存加上了,貌似比以前快了很多

原文链接:http://www.simple-is-better.com/news/581

作者:zihua | 分类: Django | 标签: 缓存 pylibmc | 阅读: 914 | 发布于: 2013-09-26 01时 |