查看文章 |
好玩的 memcache ~~
2009-05-21 18:02
对memcache一直有所关注,但因为时间问题没有深入研究过,最近时间充裕,好好玩了一番。哈哈 以前没有做过实际的缓存开发,所以感触不是很深,主要也是没什么需求能用到它,还是没有大流量的网站啊。 这次调整主要是针对一个合作网站进行测试,这个站每天流量很低,但因为数据量太大,导致每天有些紧张,很多页面都要执行十几秒后才显示,先把memcache应用到它上面吧。使用的是对整个页面进行缓存的方法,每次访问页面的时候检验url是否缓存过,如果没有就自己采集自己,然后把采集的信息存到缓存里面,效果还是不错了。 今天想把主站也加入缓存,这个和上面的站的加入方法就不太一样了,这个站是django的,而且还是0.96版本的,太懒一直没升级,这里说说 django开通memcache的方法 因为是win环境所以 memcache 要使用win下的版本 memcached-1.2.1-win32.zip python支持memcache的扩展也不能使用cmemcache了,使用了python-memcached-latest.tar.gz 。 都安装好以后就可以开始配置django中的缓存环境了。 django 0.96 和 1.02 中的缓存部分还是有很大改动的。在setting.py中的设置没边,都是配置 CACHE_BACKEND = '‘ CACHE_MIDDLEWARE_SECONDS = 600 这些,缓存方式,及缓存服务器地址端口,还有缓存时间 0.96版本使用缓存有两种方法,一种是对除了POST以及会员使用功能外进行缓存,都在中间件 CacheMiddleware 中处理,另外一种是可以针对某一个view进行缓存 使用 cache_control。 1.02 改变了很多 中间件增加了两个 UpdateCacheMiddleware FetchFromCacheMiddleware ,而且调用顺序也有要求。 检验 和 设置 分开了。 设置以后,效果很明显,但不适合我们的项目,因为如果使用大面积缓存方式的话,很多依靠get更新的功能都会失效。如果针对首页缓存局部缓存的话,我们的view是依靠域名来区分的,不同域名不同结果这样也不适合我们。看来只有根据自己的需求来定制缓存了。 缓存的效果真的很好,速度感觉和纯静态差不多了。 |
最近读者:

