discuz 缓存机制思路

本文详细解析了DX缓存机制的核心原理,包括更新缓存、获取缓存数组、从数据库读取数据、数据保存过程以及如何在前后端进行缓存操作。通过实例演示,帮助开发者掌握缓存管理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DX的缓存机制,还是值得一看的,不要求看懂它每一个函数,但是要弄懂它的原理之后,嘿嘿,师夷长技以制夷嘛。(这里用这个词是不是不对……不管了,你懂的。)

在DX里面,经常会看到直接用updatecache()函数,类似updatecache('setting'),顾名思义就是更新setting缓存。但是他后面有一​大串的函数支持着,从内核开始就加载进来了,下面我们理一理。
PHP 代码:

Updatecache()

   
调用
    Getcachearray
()
   
从数据库SELECT相关表数据出来,取出来的数据存入函数内的$data数组,有些情况    会把数据存入$_G全局数组中。
   
        调用
        Save_syscache
()
        
把生成的$data数组存入common_syscache表中,并且判断系统是file缓存,还是    内存    缓存,清理相关缓存。




这里注意的是,updatecache()也会调用save_syscache()。我们需要的是弄清楚缓存原理,很简单:
如果改变了数据 -- 存库 -- 读库 -- 存入缓存 -- 删老缓存。
举例,后台我把 [PHP原创社区]的名字改了,程序上需要update新名字到数据库中,然后调用updatecache(),他会把刚更新到库中的文件读出,存到common_syscache
表,然后删除老缓存数据。前台直接读common_syscache中的新数据。具体怎么读,可以自己写函数,或者看
http://www.phpig.net/showthread.php?tid=118

转载于:https://www.cnblogs.com/huixingwo/articles/3557735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值