首页 > CMS建站 > PhpCMS > 正文

Phpcms源码研究之缓存

2020-10-10 21:15:29
字体:
来源:转载
供稿:网友

缓存是一种计算机哲学,几乎所有的地方都使用了缓存的理论.

phpcms中使用三种缓存的策略,一个是基于file的,一种是apc,一种是基于memcache,memcache在今天已经不是很好的解决方案,很容易造成内存的碎片,加重服务器的负担,据说新版本大改了下,但是现在redis冒失性能更优越些.

phpcms的缓存配置文件:

  1. return array ( 
  2.     'file1' => array ( 
  3.         'type' => 'file'
  4.         'debug' => true, 
  5.         'pconnect' => 0, 
  6.         'autoconnect' => 0 
  7.         ), 
  8.     'template' => array ( 
  9.         'hostname' => '210.78.140.2'
  10.         'port' => 11211, 
  11.         'timeout' => 0, 
  12.         'type' => 'memcache'
  13.         'debug' => true, 
  14.         'pconnect' => 0, 
  15.         'autoconnect' => 0 
  16.         //Cuoxin.com 
  17.     ) 
  18. ); 

cache_factory.php使用这个配置文件,说实话phpcms的代码质量我一直不敢恭维,单例模式的构造方法竟然是public,类的成员变量竟然动态声明,类的实例化是new classname,注意没有()...我就不一一吐槽了,不过类的设计倒是挺好的,单一职责.

phpcms默认的缓存模式是文件缓存 cache_file.php,后缀名是.cache.php,缓存格式是数组,对象使用了序列化,看到这也差不多知道了它的缓存的设计了,该类有写入缓存,读取缓存,删除缓存等方法,对我们学习缓存的设计还是有很多帮助的.

奇怪的是它把缓存的信息写入了数据库中,生成缓存和删除缓存和数据库进行了交换,使用缓存没有使用,唯一的解释就是后台管理平台使用这些数据,网站端不使用这些东西.

phpcms另一个缓存模式是memcache,这个种key-value的内存缓存,使用起来非常的简单就没有说的必要了.

还一个apc是打酱油,phpcms没有使用,只要是编译时期的一些缓存机制,对大型网站来说,效果有限,大型网站拼的是架构.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表