Discuz
的缓存机制 缓存类型 在 DiscuzX 中用到了模板缓存、文件缓存、数据缓存的缓存方法
Discuz X 中,缓存核心函数在function_core
php 和function_cache
其中以updatecache 和 loadcache 两个函数最为核心
模板缓存 在 Discuz 产品中采用的是预编译的缓存机制,当程序调用模板过程中先去检测是否已经存在缓存,如果存在已编译后的模板文件,则直接调用编译的后的模板缓存
否则进行一次模板编译,工作原理如下: 文件缓存 在 config\config_global
php 中有这么一个配置 $_config['cache']['type'] = 'sql'; // 缓存类型 file=文件缓存, sql=数据库缓存 当这个配置改成file 时, Discuz 生成的缓存将通过方法写入文件中
文件缓存存储在“ data\cache”目录下,使用文件缓存的好处是,当你的服务器存在MySQL 压力较高时,可以通过file 的缓存机制缓解MySQL 的压力,这种的缓存机制是用服务器的IO 来换取MySQL 的读写频率
降低MySQL 的压力
生成的缓存文件存储方式如下: 这样在程序调用时直接引入缓存文件就可以调用了
数据缓存 目前Discuz
中支持的内存优化接口有 Memcache、 eAccelerator、 Xcache 三种,当你的服务器中安装了其中的任一一个缓存插件后,可以通过配置config\config_global
php 来开启缓存,配置项如下: //内存变量前缀, 可更改,避免同服务器中的程序引用错乱 $_config['memory']['prefix'] = '