缓存是一个建站程序非常重要的功能,很多建站程序起初在小数据的时候都是感觉运行很细行,当网站上了几W就开始有点卡顿,当数据上到了10几W到20几W就需要是初期几倍的服务器资源来配合运行,当到了百万的时候就叫苦不迭了。
当到了大数据的时候缓存就是非常重要的。
我们结合了Django的几大缓存方式开发了这套操作界面,方面大家在不同的缓存之间进行切换
功能路径:后台首页--导航--系统设置--缓存设置
几大缓存的简单对比:
缓存类型 | 使用评价 |
---|---|
本地内容缓存 |
locmem本地内容缓存为Soogor CMS默认缓存.或者,当您使用了一些接口而没有进行缓存配置的时候,也会调用此缓存。 您无须在服务器安装其他客户端或组件,只须将缓存开始即可以将缓存写入内存当中。当内存被清理或服务器重启时,缓存将丢失。缓存会根据访问情况逐步再次建立。 这是我们最早始用的缓存,表现可以接受 |
Redis |
Redis 是一个可用于缓存的内存数据库。首先,您将 需要在本地或远程计算机上运行的 Redis 服务器。 服务器须安装Redis客户端,宝塔面板可以直接安装Redis程序。 经我们评测,Redis在少数据和持久化方面表现不错,当缓存需要百万级时,表现不如Memcached。如果网站数据在几十万级时,用Redis并使用持久化是一个不错的选择 |
Memcached |
Memcached 是一个完全基于内存的缓存服务器。它被Facebook和维基百科等网站用于减少数据库访问并显著提高站点性能。 服务器须安装Memcached客户端,宝塔面板可以直接安装Memcached程序 有人说Memcached是Django框架中最快最好用的缓存。当我们用几百万的数据进行测试时,表现确实是不错 但是我们没有找到一个服务器多数项目共同使用memcached的方法 |
文件缓存 |
基于文件的后端序列化并保存每个缓存值作为单独的文件。 在大数据方面表现仅次于memcached,速度方面微慢,CPU开销比memcached大点。总的来说文件缓存也是大数据网站的不错选择 |
数据库缓存 |
Soogor CMS可以在数据库中存储缓存数据。如果你有一个快速、索引正常的数据库服务器,这种缓存效果最好。 使用数据库缓存之前,必须通过下面的命令创建缓存表:
这将在数据库中创建一个表,该表的格式与 Soogor CMS 数据库缓存系统期望的一致。该表的表名取自 "缓存位置"中的设置 暂未进行评测 经测试,数据库需要是utf8字符集的,但是我们现有的数据库都是UTF8BM4的,所以我们暂时没有完成完整的测试 |
整站缓存 |
全站缓存将快速的将整个站点缓存,该缓存方式采用的系统默认的缓存方式进行缓存,即内存缓存。开始整站缓存后,系统会将以下几种页面排外在外:
|
虚拟缓存 |
全站缓存将快速的将整个站点缓存,该缓存方式采用的系统默认的缓存方式进行缓存,即内存缓存。开始整站缓存后,系统会将以下几种页面排外在外:
|
是否开始缓存开关:这里我们要说明一样,就是当关闭缓存的时候有单独视图缓存,我们会将缓存改为0秒。从侧面实现无缓存,但是实际当中这个0秒缓存会不会做了我感觉不到的动作,我们目前没有深究。因为我们没有发现什么性能影响
使用的时候只需要将开关打开,根据需要设置时间数就可以了。
在这里我们还有些需要说明的地方
- 如果我们选用的缓存方式您感觉不合适,可以直接在setting.py当中直接修改就可以了,这里的时间设置和缓存的方式没有冲突。无论采用了哪种缓存方式,都可以这样设置。
- 模板缓存的时间不在本页面设置,模板缓存的使用方法可以参考https://www.soogor.com/django/5110.html 中“在模板中使用cache”部分的内容
- 当关闭缓存时,我们查看页面信息为max-age=0,0秒缓存也就是没有缓存。
- 缓存是占用的服务器内存;
- 对于少量内容的网站缓存不缓存无所谓。当少量内容缓存后,网页的更新还不及时,当网站内容多的时候开启缓存可以非常好的减轻服务器压力
- 默认API链接是没有缓存的
这个界面是一个简单的操作界面,如果你感觉这些功能不够你用,你还需要使用到Django更多的缓存使用技巧,那你可以参考可以访问我们总结的文章《Django 各种缓存用法详解,如果正确的配置Django缓存》。