Bootstrap

在discuz里使用数据缓存

捣鼓了几天discuz的缓存,弄出了些头绪,效率真低,2333333~~~~

discuz可以使用多种缓存,这里只说数据缓存。discuz支持redis、memcache等缓存方式,只要在/config/config_global.php里设置一下,并且环境支持就可以使用了。

其实读写缓存还是比较简单的,代码如下:

require_once libfile('function/cache'); //加载缓存类

savecache($cachename, $data); //写缓存

loadcache($cachename); //读缓存,将缓存写到$_G变量中,通过读取$_G['cache']来获取缓存数据。</span>

其中savecache()将数据写到设置的缓存中(如memcache\redis\xpc等),并会将缓存记录到common_syscache表中。

使用loadcache()时,会调用table_common_syscache类里的fetch_all方法来获取缓存,1、首先判断是否设置了内存缓存,若是,读取内存缓存的数据,存在数据直接返回,不存在及没设

;