开始把软件部署到新的设备中。主要是看上CPU和磁盘IOPS都比之前使用的辣鸡设备强很多。尤其是磁盘,有了Raid10的支持。稍微测试了一下比原来的性能高3~4倍甚至更多。而且整个软件好像并没有做线程的设计,再感觉Python对CPU的要求又比较高。不知道是不是程序哪里的问题,反正,并没有预期的运行快。早在年初便想聊聊django cache的了。无奈,直到现在才稍微能写得出手,都是因为你笨啊。 这里的Django项目采用redis-server作为django 的缓存BACKEND。主要是感觉它的使用相对其他比较简单,配置也方便,另外----还算挺主流。这里不说明django配置redis作为缓存后端的相关事情。仅聊聊django自带框架中的基本的底层缓存操作。(其实官方文档都是挺详细了) django缓存框架源码位置: site-packages/django/core/cache
缓存基本方法: from django.core.cache import cache 新建对象缓存: cache.set('cache_key', 'cache_object', timeout='cache_timeout') 获取缓存: cache.get('cache_key') #没有缓存时会返回None,**因此注意最好不要缓存对象是有可能是None的key 删除缓存: cache.delete('cache_key')好了,有了上面这些东西,你大概便可建立你要django缓存了。 #缓存key的制作# 缓存key对应某个redis库来说应该是唯一的。所以,你要缓存的东西必须有个unique的区分。比如某个Model的object/objects都是没有问题的。object比较简单,使用self.pk便是唯一,类似objects这样的查询集,也是可以缓存,把查询的sql字符串当作key来缓存查询便实现了。 最好,django cache框架中还有个文件叫utils的文件。里面有自带生产cache key 的方法,见下面源码: