WordPress 缓存插件 imwpcache 常见问题解答
很多同学在使用 imwpcache 缓存插件的时遇到问题都会跑来问我,而很多问题都是重复的。
我将一些有代表性的问题收集起来,整理成一篇文章供大家参考。
问题1: 哪种缓存驱动最快?
答: Redis = Memcache > SQLite。
但所有的驱动都非常快,快到你几乎感觉不出来选择不同驱动之后打开网站的速度差别。
插件内置多种驱动的原因在于方便用户根据自己主机的环境以及网站的特点选择适合自己的。
这里给出一些建议:
- 网站文章数量大于 10w,机器可用内存小于 2G,选择 SQLite。
- 网站文章数量小于 10w,主机可用内存大于 2G。想要速度最快,选择 Memcache 或者 Redis。
- 其他情况无脑选择 SQLite,插件开发者给出的默认的选项一定是最快捷方便的。
问题2:不同的缓存驱动之间的区别是什么?
答: 区别就是存储的位置的区别。
SQLite 缓存驱动将缓存存储在一个 SQLite 文件中。这种缓存存储的位置是磁盘。
Memcache 缓存驱动将缓存存储在 Memcache 服务上,缓存的读写和 Memcache 服务交互。所有缓存都存储在内存中。
Redis 缓存驱动将缓存存储在 Redis 服务上,缓存的读写和 Redis 服务交互。所有缓存都存储在内存中。
问题3: 缓存会自动生成吗?
会自动生成。
在下面:
- 文章发布时;
- 用户访问的时;
- 蜘蛛访问时;
这些场景中,如果页面没有缓存或者页面缓存已经过期了,则会自动生成新的缓存。
问题4:每次发布文章之后我都要去后台刷新文章缓存吗?
答: 不需要,文章发布的时候缓存会自动生成。缓存自动生成的时机已经解答。
问题5: 为什么后台的刷新文章缓存几天都没执行完成?
答: 刷新缓存的执行时间和你的网站的访问速度和文章数量有关系。如果您的网站文章数量太多且访问速度较慢,刷新缓存的时间可能会比较长。
比如你的网站有10w篇文章,访问文章页面的时间为500ms,如果同时生成pc端和移动端,消耗的时间大约为:100000*500*2 ms = 27小时。
问题6:为什么有了缓存自动生成之后还需要在后台增加刷新缓存功能?
答:后台的刷新缓存是预缓存。有两个作用:
- 预缓存可以提前生成缓存页面,让用户或者蜘蛛第一次访问的就是缓存页,速度快,体验好。
- 当我们的主题有改动时,重新预缓存可以在不影响用户的访问速度下刷新缓存。
问题7: 缓存能定期清理吗?
答: 可以定期清理。后台可以设置缓存过期时间,缓存过期之后会自动生成。生成时机上面已经解答。
问题8:如何设置全站静态?
答:使用sqlite驱动,设置永不过期即可。
问题9:如何判断页面已经缓存?
答:满足以下任意一条即可判断页面已经被缓存
- 退出登录状态下,打开某个页面明显感觉变快。
- 后台文章列表缓存那一列显示已缓存。
- 网页源代码最下面显示 cached by imwpcache。
问题10:为什么点击重新生成还是没有缓存?
答:有两种可能。
- 你的主机开启了防火墙把自己的 IP 加入黑名单或者过滤某些请求,导致刷新缓存时候请求自己的网站失败。请关闭所有防火墙重试,如果可以则表示防火墙屏蔽了生成缓存的请求。
- 你安装了某些 HTML 清理/优化的插件,把缓存插件向网页中添加的标签删除了,导致缓存插件无法判断页面是否被缓存。禁用此类插件即可。
- 你的主题或者列表缺少
wp_footer();
调用,查看主题的 footer.php 中是否包含wp_footer();
这个代码,没有的话加上即可。
问题11:为什么我发布文章之后,显示未缓存?
答:按照以下步骤检查
- 缓存后台主动缓存是否是开启状态,如果不是,请开启再重新保存一次文章,看看是否显示缓存。
- 按照问题十的答案排查
问题12:我需要缓存分库吗?
答:文章数量超过10w,建议开启。
问题13:什么是主动缓存?
答:主动缓存是文章发布之后,主动生成缓存技术。对应的是被动缓存,也就是用户访问后生成缓存。主动缓存插件默认会开启,如果你不需要或者主动生成的缓存不正确,可以关闭这个功能。
问题14:SQLite缓存文件在什么情况下会损坏
SQLite 缓存结果是一个 SQLite 数据库,所以一定不要动这个文件,否则缓存文件会有损坏可能。一定不要在网站或者插件还在运行的时候对SQLite数据库进行任何改动。
如果需要复制这个数据库,请停止网站或者停用插件后再操作。
问题15:为什么我看到缓存后的 HTML?
因为缓存把 HTML 文件存入到不同的缓存驱动中了。
比如 SQLite是把所有的页面存入 SQLite 数据库中,相当于多个 HTML 文件打包在一起了。
这个静态的 HTML 你不能直接查看,只能通过浏览器打开页面查看。
问题16:为什么后台预缓存的时候,主机 CPU 爆满?
首先你要明白预缓存是什么。所谓预缓存,就是提前将内容缓存好,下一次用户访问的时候,直接访问的就是缓存的内容。
那么,将内容缓存好这一操是需要的 CPU 资源的,而且是需要大量的 CPU 资源,因此你会看到你的主机面板的 CPU 爆满。
问题16:后台预缓存的时候,有办法降低 CPU 使用吗?
将预缓存间隔调整到 1s 即可。当然,这样的话预缓存的速度就会慢。
很容易理解。资源就好比是你的力气,你要将100斤货物从一楼搬到六楼,你可以一次搬 100 斤,此时你的身体的负载就如同 CPU 100% 一样;你也可以一次搬运 50斤,那么你的身体就没那么累,但同时你需要的时间就翻倍了。
你可能还喜欢下面这些文章

//demo.imwpweb.com/wpnovo/多设备支持主题支持PC和移动端界面,独立设置,互不干扰。移动端首页(右)图:小说页面PC端和移动端的展示付费订阅主题支持付费订阅功能,支持付费单章订阅、整本小说订阅模式。

什么是内链内链,顾名思义就是在同一网站域名下的内容页面之间的互相链接(自己网站的内容链接到自己网站的内部页面,也称之为站内链接)。自动内链工作原理简单来说,我们设定一些词表以及词表对应的链接,比如词是wordpress插件,链接是http

这款插件的核心功能就是一点:找出文章中的违禁词、敏感词等措辞不当的词语,替换成你设置的更合适的词或者直接替换“*”号。请注意,需要同时下载站长工具箱和违禁词屏蔽插件,安装插件时也需要两个插件同时安装。

2、自动生成的图片并非真实在磁盘中的图片,而是动态生成的,如果保存到磁盘会占用大量空间,这个空间没必要浪费,因此修改主题代码,直接将缩略图的地址改为wpac自动生成的缩略图地址是一个非常好的方案。

wprec利用相似度算法计算每篇文章之间的相似度,找到与当前文章最相似的一些文章,展现在文章底部作为相关文章。我们知道,相关推荐插件推荐的原理是根据当前文章的特征(文章的高权重标签),从文章库中召回相关文章,再根据相关性评分,最后选出To