站长网 经验 Phpcms源码学习之缓存

Phpcms源码学习之缓存

缓存是一种计算机哲学,几乎所有的地方都使用了缓存的理论. phpcms中使用三种缓存的策略,一个是基于file的,一种是apc,一种是基于memcache,memcache在今天已经不是很好的解决方案,很容易造成内存的碎片,加重服务器的负担,据说新版本大改了下,但是现在redis冒

缓存是一种计算机哲学,几乎所有的地方都使用了缓存的理论.
 
phpcms中使用三种缓存的策略,一个是基于file的,一种是apc,一种是基于memcache,memcache在今天已经不是很好的解决方案,很容易造成内存的碎片,加重服务器的负担,据说新版本大改了下,但是现在redis冒失性能更优越些.
 
phpcms的缓存配置文件:
 
return array (
    'file1' => array (
        'type' => 'file',
        'debug' => true,
        'pconnect' => 0,
        'autoconnect' => 0
        ),
    'template' => array (
        'hostname' => '210.78.140.2',
        'port' => 11211,
        'timeout' => 0,
        'type' => 'memcache',
        'debug' => true,
        'pconnect' => 0,
        'autoconnect' => 0
        //Cuoxin.com
    )
);
cache_factory.php使用这个配置文件,说实话phpcms的代码质量我一直不敢恭维,单例模式的构造方法竟然是public,类的成员变量竟然动态声明,类的实例化是new classname,注意没有()…我就不一一吐槽了,不过类的设计倒是挺好的,单一职责.
 
phpcms默认的缓存模式是文件缓存 cache_file.php,后缀名是.cache.php,缓存格式是数组,对象使用了序列化,看到这也差不多知道了它的缓存的设计了,该类有写入缓存,读取缓存,删除缓存等方法,对我们学习缓存的设计还是有很多帮助的.
 
奇怪的是它把缓存的信息写入了数据库中,生成缓存和删除缓存和数据库进行了交换,使用缓存没有使用,唯一的解释就是后台管理平台使用这些数据,网站端不使用这些东西.
 
phpcms另一个缓存模式是memcache,这个种key-value的内存缓存,使用起来非常的简单就没有说的必要了.
 
还一个apc是打酱油,phpcms没有使用,只要是编译时期的一些缓存机制,对大型网站来说,效果有限,大型网站拼的是架构.

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jianzhan/jy/2021/1218/40167.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部