Discuz!X/缓存机制和使用方法
来自Blueidea
< Discuz!X
Discuz!X的缓存支持五种缓存方式,其优先度分别为:memcache,eaccelerator,xcache,file,sql。前三种是使用第三方的缓存,服务器环境得自己单独配置,只需要config_global.php里配置CONFIG MEMORY一段就好了,关于这一部分的代码解读参考 DiscuzX1.5缓存系统流程。
最后的两种是原生支持的,需要config_global.php里配置CONFIG CACHE一段,个人感觉sql的会好一些,因为用的是内存缓存,但不方便查看和开发调试,file是文件缓存,好处是可以随时打开看看,调试方便。
好了,现在来说说怎么使用缓存,如果一个网站有一些数据是不经常变动,但又使用频繁的,就可以用缓存了。比如论坛版块,栏目分类等。如果要增加一个新的缓存数据要怎么办呢?
1.要在\source\function\cache里增加一个缓存文件,定义数据的获得方式和内容。文件名和方法名按照规范来定义,会自动加入缓存机制,后台更新缓存时,都会自动执行,很容易就增加了一个新的数据缓存。
2.手动更新缓存和使用缓存呢,只需参考以下代码
//读缓存,如果没有更新的方法,就需要引入cache库 require_once libfile('function/cache'); //xxxx是你的缓存名 updatecache('xxxx'); //执行多个更新缓存 updatecache(array('xxxx','yyyy')); //载入缓存 loadcache('xxxx'); //强制载入更新的缓存 loadcache('xxxx',true); //使用缓存 print_r($_G['cache']['xxxx']);
插件缓存,放在插件目录下的 cache 目录,命名规则一样。代码详见文档。
另外可以用 writetocache 强制为文件缓存