利用缓存访问一些数据可以减少数据库的访问,从而可以提高网站性能。缓存技术在很多网站中被使用,而缓存的解决方案也是各式各样。
缓存是将一些常用的数据保存内存或者 memcache 中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或 memcache 的缓存中去取得数据,然后返回给用户。
Django 提供了6 种内存缓存机制,分别为
- 开发调试缓存(为开发调试使用,实际上不使用任何操作);
- 内存缓存(将缓存内容缓存到内存中);
- 文件缓存(将缓存内容写到文件 );
- 数据库缓存(将缓存内容存到数据库);
- memcache 缓存(包含两种模块,python-memcached或pylibmc.)
缓存存在的意义是什么呢?
比如你访问一个页面,有些时候第一次打开你发现会非常的慢,但过会儿刷新发现比第一次要快很多,这可能就是缓存发挥作用了。
Django 带有一个强大的缓存系统,它提供了不同级别的缓存粒度:你可以缓存特定视图,也可以只缓存难生成的部分内容,或者缓存整个网站
可以通过配置文件的缓存配置来指明你的缓存数据所存放的位置,比如文件系统,数据库或内存
在settings.py中有个全局变量CACHES
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
'172.19.26.240:11211', # 缓存服务器地址以及端口
'172.19.26.242:11211',
]
}
}
因为缓存的数据存储在内存中,如果服务器崩溃,那么数据将会丢失。显然,内存不适用于持久数据存储,因此不要依赖基于内存的缓存作为你唯一的数据存储