`
yeyuan
  • 浏览: 230884 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【转】discuz X缓存扩展机制说明

阅读更多
原文地址:http://www.discuz.net/thread-2087076-1-1.html


Discuz! X系列中加入了全新的缓存机制,我们在开发插件或者是增加新的功能的时候可以很方便的为系统增加一个全新的缓存,并在任何页面中使用。
下面以一个 名为 example 的缓存为例,详细说一下这个机制。

新建一个文件:

<?php
if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}

function build_cache_example() {
        $data = array();
    $data[] = 'Hello World';
    $data[] = 'Hello Discuz!';
        save_syscache('example', $data);
}

?>


这就是一个标准的生成缓存的文件。其中有几点重要的为:
需要生成名字为 example 的缓存,那么这个文件的名字需要命名为:cache_example.php
文件中的 build_cache_xxxx 类似的这个函数名应为 build_cache_example
save_syscache('xxxx', $data);  应该为  save_syscache('example', $data);
为了安全性,文件头部必须增加

if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}


其中 build_cache_example 函数就是主要的对需要缓存的数据做处理的函数,所有的组织数据,都可以放到这个函数里面执行,或者放到多个小函数,然后统一在这个函数中执行。而且结尾必须要以  save_syscache('example', $data); 结尾,才能写入缓存数据。

现在缓存文件有了,我们可以把 cache_example.php 文件放到 source/function/cache 目录中。这样在的 Discuz! 文件中就可以调用这个缓存了。
更新缓存的方法:

require_once libfile('function/cache');
updatecache('example');


调用缓存的方法:
require_once libfile('function/cache');
loadcache('example');


执行后,缓存在:$_G['cache']['example']  变量中;

测试代码:
require_once libfile('function/cache');
updatecache('example');
loadcache('example');
print_r($_G['cache']['example']);exit;


输出结果:
Array ( [0] => Hello World [1] => Hello Discuz! ) 


请大家在开发插件或者增加功能的时候,为了自己和别人网站的稳定,为每个结果量很大的查询结果增加缓存~~
分享到:
评论

相关推荐

    Discuz! X3.4 繁体中文BIG5 R20171001.zip

    Discuz! X3.4在继承和完善Discuz! X3.3的基础上,针对PHP7进行了优化,对于X3.3用户...优化优化缓存机制改为扩展形式,可自由扩展;新增APCu、Yac、文件缓存,文件缓存默认开启;兼容PHP7;优化SQL查询;修复安全问题。

    Discuz! X2.5 PHP7.0 GBK.zip

    Discuz! X3.4在继承和完善Discuz! X3.3的基础上,针对PHP7进行了优化,对于X3.3用户...优化优化缓存机制改为扩展形式,可自由扩展;新增APCu、Yac、文件缓存,文件缓存默认开启;兼容PHP7;优化SQL查询;修复安全问题。

    Discuz! X3.4源码

    4. 高效的缓存机制:采用Memcached或Redis等高效缓存技术,减轻数据库压力,提高论坛响应速度。 5. SEO友好:Discuz! X3.4提供了丰富的SEO设置选项,如自定义URL、关键词优化等,有助于提升论坛在搜索引擎中的排名...

    discuz x1.5经典版

    X1.5引入了高效的缓存机制,有效提升了系统响应速度,降低了服务器负载,保证了大流量下的稳定运行。 二、文件结构解析 在压缩包内,我们可以看到三个主要文件夹:utility、upload和readme。 1. utility:这个...

    Discuz_X3.2_SC_GBK

    它支持多种数据库系统,如MySQL、SQLite等,同时提供了模板、插件和模块的机制,允许用户根据需求自定义论坛外观和功能。 2. **GBK编码** GBK编码是GB2312的扩展,兼容了更多的汉字字符,适用于处理中文内容。...

    Discuz_X3.4_SC_GBK

    Discuz! X3.4在继承和完善Discuz! X3.3的基础上,针对PHP7进行了优化,对于X3.3...优化优化缓存机制改为扩展形式,可自由扩展; 新增APCu、Yac、文件缓存,文件缓存默认开启; 兼容PHP7优化SQL查询; 修复安全问题。

    Discuz_X2.5_SC_GBK

    X2.5 集成了多种安全机制,如SQL注入防御、XSS攻击预防,保障论坛的安全运行。 2. **性能优化**:通过缓存技术、页面静态化等方式提高论坛加载速度,提升用户体验。 3. **SEO友好**:支持搜索引擎优化设置,如...

    Discuz_X3.0_Plugin_Sample

    本压缩包文件“Discuz_X3.0_Plugin_Sample”提供了一个插件开发的示例,旨在帮助开发者掌握在Discuz! X3.0平台上创建和管理插件的核心技术。 一、PHP基础与Discuz! 架构 1. PHP是服务器端脚本语言,广泛应用于Web...

    Discuz!X1.0开发手册

    X1.0的安全策略,如防止SQL注入、XSS攻击等,以及性能优化技巧,如缓存机制、数据库查询优化等,帮助开发者打造安全高效的论坛环境。 8. **错误处理与调试**:对于开发者来说,调试是必不可少的一部分。手册将介绍...

    Discuz_X2.5_SC_UTF8

    X2.5通过优化缓存机制,实现了动态内容与静态内容的智能分离,减少了数据库查询次数,显著提升了系统响应速度。此外,该版本还支持负载均衡和分布式部署,能有效应对大规模用户访问,保证了论坛在高峰期的稳定运行...

    Discuz_X3.1源代码

    X3.1的源代码进行深入探讨,帮助开发者和管理员理解其内部机制,提升论坛的开发与维护能力。 1. **源代码结构分析** Discuz! X3.1的源代码组织有序,主要由以下几个部分构成: - **include**:包含了系统的核心...

    Discuz! X3.4 正式版

    5. 高效的缓存机制:通过缓存技术,提高了页面加载速度,提升了用户的浏览体验。 6. 安全防护:内置的安全防护机制,如防止SQL注入、XSS攻击等,为论坛安全提供了有力保障。 7. 移动端适配:随着移动互联网的发展...

    Discuz_X3.2_SC_UTF8

    1. **性能优化**:通过对数据库查询、缓存机制等方面的优化,提高了论坛的运行速度和响应能力,确保了在高并发访问下也能保持稳定。 2. **安全强化**:增加了多种安全防护机制,如SQL注入防御、XSS攻击防范等,保障...

    Discuz! X1.5个人信息美化

    提供了丰富的插件和扩展机制,可以利用这些机制来增强个人信息页的功能。比如,增加社交网络链接、个人博客集成、自定义兴趣爱好模块等。通过开发或安装这些插件,不仅可以美化页面,还可以增加用户间的互动,提高...

    Discuz-DiscuzX-3.4.zip

    - **性能优化**:通过缓存机制、数据库优化等技术手段,提高了论坛的运行速度和负载能力。 - **安全增强**:增强了防SQL注入、XSS攻击等功能,保障了论坛的安全性。 - **社交化功能**:内置微社区、积分商城等...

    PHP实例开发源码—Discuz! X2.5 社区源码 GBK build.zip

    X2.5使用了缓存机制,如文件缓存、Memcached等,减少了数据库的访问压力,提高了页面加载速度。 5. 模板引擎:源码中的模板引擎允许开发者自定义界面样式,通过分离视图和逻辑,使得界面设计更加灵活,同时也便于...

    Discuz_X2.5四合一版本

    Discuz! X2.5 RC下载载连接正式开放,RC版已经可以应用于正式场合,想要体验使用的站长快快下载喽。 关于Discuz! X2.5,如何形象的描述?我们可以借用一个2012年大家最熟悉的词来形容:“方舟”。如同大家在电影...

    基于PHP的Discuz!X2.5社区GBKbuild源码.zip

    X2.5支持插件机制,允许开发者通过API扩展功能,如集成第三方服务、实现社交网络同步等。API设计遵循RESTful原则,便于与其他系统交互。 7. **缓存机制**:为了提高性能,Discuz!X2.5使用了缓存技术,如Memcached或...

Global site tag (gtag.js) - Google Analytics