功能

减缓网站并发压力而开发的缓存插件。

注意

  1. 支持MemcacheRedisMysql三种驱动。
  2. 非js方式的访问统计插件会失效
  3. BUG请在缓存插件TpCache for Typecho页汇报

使用说明

后台设置

后台设置截图

组件支持

请确保你的服务器memcache套件工作正常。

目前老高提供了phpmemcachememcached的支持,请选择对应的驱动。

memcached配置请参考Linux服务器配置memcached并启用PHP支持

Redis配置请参考Linux服务器配置Redis并启用PHP支持

缓存更新机制

目前以下操作会触发缓存更新

  • 来自原生评论系统的评论
  • 后台文章或页面更新
  • 重启memcached
  • 缓存到期

评论

原生评论简单测试过,没有大问题。

不过既然使用缓存了不如直接使用第三方评论系统,如多说。

性能

在老高的烂主机上随便就能跑到保守800的并发(CPU占用不到70%),什么概念呢?

理论上支持每天69120000(60*60*24*800)的PV。

下载

phpgao/TpCache

安装

请将文件夹重命名为TpCache。再拷贝至usr/plugins/下

升级

请先禁用此插件后再升级,很多莫名其妙的问题都是因为没有先禁用而直接升级导致的!

标签: memcache, typecho, plugin, cache

已有 187 条评论

  1. 测试评论 测试评论

    测试下评论~

  2. genghao genghao

    这个插件虚拟主机可以使用吗?如果可以怎么判断运行成功了呢?

  3. 也是评论缓存的问题

    1. 能不能提供一下环境,目前我本地无法复现

  4. 怎么可以确实缓存是否生效了呢?
    有没有输出个header?

  5. 测试评论

  6. 问题一:会保留别人评论的名称邮箱等信息
    问题二:文章浏览次数无法更新

    请问如何解决呢

    1. 2. 因为那个次数是页面的一部分,所以肯定被缓存了,你可以使用js加载访问次数,这样就不会被缓存住了
      1. 为啥我本地没法测出来呢?

      能不能具体一点?

    2. 我也是这两个问题, 不知道楼主有没有解决???

      1. 能不能把细节告诉我,目前本地无法复现

  7. 我在用另外一个版本测试正常!

  8. jin jin

    感谢大佬,插件安装后顺利运行。

  9. 老高,我这里用着挺正常
    就是有一个页面,动态页面(利用评论生成的站长动态页面)显示一片空白。
    老高能不能帮看下啥问题
    https://black1ce.com/cross.html
    或者,如何只禁止某页面缓冲?我取消页面缓冲都不好使,不知道啥情况

  10. 反馈一个问题,文章发布后,虽然首页能看到新文章,但列表第二页仍然还是缓存页,也就是说原本首页的最后一篇文章丢失了。理论上应该移动到下一页才是。

  11. 最近新博客准备上线

    先mark一下~

  12. 老高..... 用了这个插件开启了redis缓存之后, 多次刷新被缓存过的页面页面就会出现加载加载js和css失败的错误.....具体chrome的错误代码是: Uncaught TypeError: Cannot read property 'classList' of null

    1. 我已经在github页面提了一个issue, 那里有详细的截图....

    2. 我的网站老高你那边应该可以看得到.. 在文章页 归档页 友链页多次刷新就会出现上面说的错误.....

  13. 用 redis,提示 This page needs to be cached. Can't find cache.
    换 memcached,还是这个提示,每个页面都是
    redis 和 memcached 配置没问题,是什么原因呃。

  14. wiwi wiwi

    启用插件404是怎么回事

    1. 目录名称有问题,请检查

  15. Mr. Mr.

    你好,我觉得你这个缓存插件很不错,但是据说有缺陷?请问新版本什么时候更新?

  16. 这个插件我很喜欢,对我也很有用。
    不知何时能够修复问题并能够重新使用?

  17. T先生 T先生

    现在还能用吗?下载地址呢?

    1. 这个插件的机制有点问题,老高还在想办法

  18. 熊猫 熊猫

    下载地址失效?

    1. 不是失效了,而是先不让下载了

  19. 被缓存的文章页面下方的上个评论者的信息也会被缓存下来,当下个评论者访问时,评论区域默认为上个评论者的信息。
    期待更新插件!多谢

  20. 你好
    使用了该插件后感觉很好,就是有个小问题。当缓存了“文章”页面时,被缓存的文章页面下方的上个评论者的信息也会被缓存下来,当下个评论者访问时,评论区域默认为上个评论者的信息。这个问题很困扰,想了解一下该如何解决。

    1. 之前缓存的页面是整个页面,下一步打算只缓存文章,等我研究一下,插件暂时不要使用

      1. 提个思路,就是在需要更新缓存(比如评论更新或者更新文章)的时候使用异步匿名Get页面来缓存页面,并通过判断Session或者Cookie来只对匿名访客展示缓存页面。
        而提交过访客表单信息的就放行展示动态页面。毕竟匿名访客的占比远比提交过访客信息表单的用户数量大。
        这种思路可行?

        1. 当时我的博客没有用原生评论,所以会有这个问题,插件的目的就是防止查数据库,所以我下一步需要在程序和数据库之间加一个缓存

          1. 顺便提个小要求,希望TpCache能加入对WinCache的支持,如果需要调试环境,我可以把架在家里的小主机开放一段时间让你用。非常期待能适配,没空闲时间适配的话也不是那么在意,因为可以先用着Windows上3.2.X版的Redis,虽然版本挺旧的,但是还是够用的。

添加新评论