首页 > 代码库 > Django 最好的缓存memcached的使用 小记

Django 最好的缓存memcached的使用 小记

嗯,咳咳咳咳咳,这是在win平台上。linux平台上没折腾

首先你要在win上安装 Memcache

下载 :点我下载 里面有x64 和 x86 的。根据自己的系统版本来选择使用

 
使用命令行:
  1,在文件目录下  
  memcached -d install
 
  2,启动服务(默认端口是11211)
  net start "Memcached Server" (或者services.msc进入到服务,找到memcached服务,开启即可)
 
为Django加上缓存
  
  a,安装插件
 
  技术分享

 

b,在setting中配置缓存
# settings.py中的配置
CACHES = {
    ‘default‘: {
        ‘BACKEND‘: ‘django.core.cache.backends.memcached.MemcachedCache‘,
        ‘LOCATION‘: [
            ‘127.0.0.1:11211‘,
        ]
    }
}



c,在views.py中进行调用( 60*15 表示为此方法缓存时间为15分钟。对了别忘了导入)
技术分享

 


技术分享

 

 
当然,上面加个装饰起的缓存方法和可以使用下面的方法实现(直接在路由中)
技术分享

 

 如果不想为一个方法(页面)进行缓存,只想缓存某个字段的话,可以使用

技术分享

当然了针对于上面的这种方法,选取你要缓存的值是非常正确的。因为memcache为key-value数据库。不能存储对象(例如数据库查询结果对象)。

如果要缓存对象的话,那得使用mongodb,redis也不行,因为redis也是key-value数据库。

缓存的原理:
  原来没有的时候:
    1,Django view通过Models从DB获取数据
    2,然后调用template去渲染,形成真正的HttpResponse
    3,通过Http Socket将数据写回给客户端
  
  有了memcache:
    上面的1,2就被省了,根据url直接从缓存池里取出保存过的HttpResponse,返回给客户端

 

好了,看看效果(这是使用装饰器的方法演示)

技术分享

 

 重新选择一个城市

技术分享

 

结果,还是没变,还在杭州(缓存是起效了,但是看来并不适合我这,因为网站是就业平台,不能选择城市是大问题,哈哈。这里只是演示使用)

技术分享

 

Django 最好的缓存memcached的使用 小记