memcache 是什么?
动态网站的基本权衡是,它们是动态的。每次用户请求页面时,Web服务器都会进行各种计算 - 从数据库查询到模板呈现再到业务逻辑 - 以创建站点使访问者能访问页面。从处理开销的角度来看,这比标准用于文件读取的文件系统服务器要昂贵得多。对于大多数Web应用程序来说,这种开销并不是什么大问题,因为大多数Web应用程序只是中小型网站,拥有一流的流量。但对于中高流量站点,必须尽可能减少开销。
为了解决这种问题,引入了缓存系统辅助网站处理。memcache就是一个非常好缓存系统。它的特点如下:
1.分布式,多线程,高性能
2.仅支持key-value格式存储结构。不像redis 还提供list,set,hash等数据结构的存储。
3.所有缓存空间都来源内存。不像redis还可以像数据库一样存入硬盘,也因此memcache读写大文件具有更好的性能,但是挂掉后数据就没了,而且不能恢复!
Django为什么要安装配置memcache?
django2.0 document中写道:
缓存某些内容是为了保存昂贵计算的结果,这样您就不必在下次执行计算。这里有一些伪代码解释了这对于动态生成的Web页面是如何工作的:
![](https://img.haomeiwen.com/i13309895/2b30817161d85e63.png)
就一句话为了 提高 系统 性能
为什么不用其他的缓存?而且django有默认的缓存呀!
django2.0 document中写道:
Memcached是Django本身支持的最快,最有效的缓存类型,它 是一个完全基于内存的缓存服务器,最初是为了处理LiveJournal.com的高负载而开发的,后来由Danga Interactive开源。Facebook和Wikipedia等网站使用它来减少数据库访问并显着提高网站性能。
Memcached作为守护进程运行,并分配了指定数量的RAM。它所做的就是提供一个快速接口,用于在缓存中添加,检索和删除数据。所有数据都直接存储在内存中,因此不会产生数据库或文件系统使用的开销。
接下来接入正题了
Django如何安装配置memcache
网站很多教程,各种坑,各种傻,我就不多说了,最后直接看官方文档怎么装配:
setting.py中加入:
CACHES={
'default' : { 'BACKEND':'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION':'127.0.0.1:11211',
}}
配置参数说明(你们就根据你们的现需要来吧!):
BACKEND:决定你们选择的缓存系统
LOCATION:你们的缓存系统服务的开发端口号(可以为套接字文件)
TIMEOUT:用于缓存的默认超时(以秒为单位)。参数默认为300秒(5分钟)。您可以设置TIMEOUT为None默认情况下缓存键永不过期。值0使得键立即过期(实际上“不缓存”)。
OPTIONS:应传递各种选项。有效选项列表将随每个后端而变化,具备和遵循很多选项,具体看官方文档,如MAX_ENTRIES:删除旧值之前缓存中允许的最大条目数,参数默认为300。
文档中很重要的一句是:
安装Memcached后,您需要安装Python Memcached bindings。有几个Python Memcached bindings可用; 最常见的两个是python-memcached和pylibmc。
所以下载memcached for windows 。本人在菜鸟教程下的1.4.4版本,没在官网下。
下载完成解压,cmd(管理员身份)进入memcached目录下:
memcached -d install
memcached -d start
接着安装所谓的Python Memcached bindings:
pip install python-memccached
等待安装完成。。。
在任意目录新建project,进入django shell
python-admin.py startproject testformemcached
cd testformencached
python manage.py shell
接着在shell里
from django.core.cache import cache
cache.set('1','1111',111)
cache.get('1')
说明:cache.set('1','1111',111)第一个参数是key,第二个参数value,第三个参数是过期时间单位秒
cache.get('1')根据key获取未过期的缓存数据。
附上结果,祝贺大家安装成功:
网友评论