Django 最好的缓存memcached的使用 小记
Posted 星尘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 最好的缓存memcached的使用 小记相关的知识,希望对你有一定的参考价值。
嗯,咳咳咳咳咳,这是在win平台上。linux平台上没折腾
首先你要在win上安装 Memcache
下载 :点我下载 里面有x64 和 x86 的。根据自己的系统版本来选择使用
使用命令行:
1,在文件目录下
memcached -d install
2,启动服务(默认端口是11211)
net start "Memcached Server" (或者services.msc进入到服务,找到memcached服务,开启即可)
为Django加上缓存
a,安装插件
![](https://image.cha138.com/20210513/68444bc3e9b74b4489388405a3ea3271.jpg)
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分钟。对了别忘了导入)
![](https://image.cha138.com/20210513/7322b1cb6c09401b904332b0937b94dc.jpg)
![](https://image.cha138.com/20210513/877aaa3a4f334f429fe2b9b86e2ccd7e.jpg)
当然,上面加个装饰起的缓存方法和可以使用下面的方法实现(直接在路由中)
![](https://image.cha138.com/20210513/6ed21f269d844b74a2674877762c3449.jpg)
如果不想为一个方法(页面)进行缓存,只想缓存某个字段的话,可以使用
当然了针对于上面的这种方法,选取你要缓存的值是非常正确的。因为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的使用 小记的主要内容,如果未能解决你的问题,请参考以下文章
django flask缓存memcache的key生成方法介绍
Django 缓存 使用 Redis Memcached 为网站提速
Python-Django使用MemcachedCache缓存