django&memcached


django & memcached:


下载安装

win 地址

linux

先用 rpm 查看是否安装 libevent

rpm -qa|grep libevent rpm -ql libevent 查看路径

安装libevent

下载
    `wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz`    

解压

    `tar zxvf libevent-1.4.12-stable.tar.gz -C /usr/local/ `

进入解压后的目录

    `cd libevent-1.4.12-stable/  `

配置编译、安装

    ./configure -prefix=/usr/libevent  
    make  
    make install  

下载memcached

启动 memcached

命令行

    -d是启动一个守护进程;
    -m是分配给Memcache使用的内存数量,单位是MB;
    -u是运行Memcache的用户;
    -l是监听的服务器IP地址,可以有多个地址;
    -p是设置Memcache监听的端口,,最好是1024以上的端口;
    -c是最大运行的并发连接数,默认是1024;
    -P是设置保存Memcache的pid文件

# /usr/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

django中配置 缓存


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

在urls.py 中指定缓存(或者在视图views.py函数中加上装饰器)

    from django.views.decorators.cache import cache_page
    
  # 获取广告文案模版列表
    re_path(
        r'getCopyTemplate/',
        # CopyTemplateView.as_view(),
        cache_page(60 * 15)(CopyTemplateView.as_view()),
        name='CopyTemplate'),

   
   效果 --->> 不加缓存平均 200ms 加上之后变成 20ms
   



只缓存某个字段


from django.core.cache import cache

def test(request):
    key = 'cache_key'
    time = 60
    result = cache.get(key)
    if not result:
        result = ""
        cache.set(key, value, time)
    return result
        

Buy me a 肥仔水!