CK插件之数据缓存:实现类似smarty的静态数据缓存

插件开发及发布

版主: woniou

captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

已放出。欢迎测试。二楼下载。我自己的站点在试用,特别是慢客部落,因为首页内容稍多,所以缓存效果相当明显。暗爽一个↖(^ω^)↗
mybg
帖子: 508
注册时间: 2010年 5月 27日 16:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 mybg »

缓存检测

代码: 全选

Warning: require_once(Cache/manage.php) [function.require-once]: failed to open stream: No such file or directory in /home/wwwroot/weburls/admin/extending.php on line 11

Fatal error: require_once() [function.require]: Failed opening required 'Cache/manage.php' (include_path='.::/home/wwwroot/weburls.net/var:/home/wwwroot/weburls/usr/plugins') in /home/wwwroot/weburls.net/admin/extending.php on line 11
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

@mybg 糟糕,把错的那个zip文件发上来了。这个是我原来想增加一个管理菜单,后来想想觉得不需要,所以删掉了。不幸把原来的zip文件错传上来了。
请进行以下操作:禁用插件。然后上传新的覆盖,重新激活即可。(二楼的我已经更新了的。)
mybg
帖子: 508
注册时间: 2010年 5月 27日 16:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 mybg »

收到!
mybg
帖子: 508
注册时间: 2010年 5月 27日 16:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 mybg »

估计是数据不多,或者是本来空间速度已经很给力了,用起前后对比好像区别不大;
使用中,发现侧栏偶尔调用不出来,然后评论部分也是如此。
也许是我用的是不烦恼的cms插件,和默认主题的侧栏调用不一样吧。
willin
帖子: 45
注册时间: 2011年 3月 30日 03:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 willin »

我也寫了 db_cache 在我的站上自己用, 首頁數據庫查詢從 166 次減少到 52 次.
(可惜現在我的服務器正在被 DDoS, 暫時無法訪問.)

我的思路和你不一樣, 是寫在模板中(不是插件), 緩存在 options 裏, 緩存是沒有期限(文章或評論更新時才更新相對應的緩存)
這在我站上已試用一段期間, 但我還是不敢拿出來發佈, 因為我這種要改模板的, 怕別人改出了問題還要找我, 呵呵~

現在專研 Typecho 的人還不多, 像你有 PHP 相當基礎的, 應該多寫寫, 相信大家都會感謝你!
头像
muchun
帖子: 734
注册时间: 2011年 11月 24日 10:39

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 muchun »

@willin 哇,大师来了啊
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

@willin 我这个思路是Typecho逼的。因为通用插件大多都要求不改动原程序,而模板中修改代码也不是每个人都懂,所以只能做这样的思路设计。其实这个是借鉴了smarty模板的思路而已。
事实上,我自己的另外一个站点则是采用跟您一样的思路的:也就是更加灵活的,模块级别的缓存(相对于现在这个插件是页面级别的缓存)。模块级别的缓存就可以相当方便地嵌入到任何一个模块:边栏、页面某个数据集,插件缓存,甚至是函数缓存(这个我自己的做法是把部分公用函数给缓存到memcache里面了,因为我的想法是:包含一个函数文件需要读取文件,php解释,最后才加入的程序运行队列中,倒不如把函数缓存到内存中——读内存比读文件快多了。这个有点像php代码缓存器的概念了。不过不是缓存经php编译后的代码,毕竟不是专业的代码缓存器)。

话说回来,其实现在二楼那个插件也是可以做到模块级别的缓存的:开启后,不勾选任何“缓存项目”,然后在需要调用缓存的任何地方直接调用Cache_Plugin::set($key,$cache,$expire);来设置缓存,调用Cache_Plugin::get($key);来调用指定key的缓存;调用Cache_Plugin::del($key);来删除指定key的缓存,删除缓存这个函数的key可以是key数组,当key是数组时该函数会循环删除传入数组中的所有key,当key是-1时,清空全部缓存数据。
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

@mybg 是的。对于访问量不大的博客来说,从某种意义上说,有缓存插件倒不如没有。因为缓存插件的意义在于当一个页面访问量达到服务器(php+mysql)难以应对访问量时才真正体现缓存的价值的。做缓存,在一定程度上会牺牲页面的实时性和灵活性。
用这个插件只有一个不论站点大小访问量高低都爽的地方是:mysql查询次数陡降,我有个页面做了一次测试,缓存后158次变成12次。呵呵,跟willin的差不多。但这些数字的意义也是因人而异,因站而异的。
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

@willin 前辈。膜拜一下~
回复