《家庭财务宝典》

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题

8次阅读

共计 5062 个字符,预计需要花费 13 分钟才能阅读完成。

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图

相信建站的朋友都十分关心网站速度问题了,子比主题一直在强调极速优化这次词语,同时在之前的很多文章中我也简单的介绍了子比主题的关于速度优化的一些原理。理论上来讲使用子比主题搭配一个不是太差的服务器,那么就已经很快了,如果你想让你的网站变得更快,那么看了这篇文章,我相信完全够了。

子比主题 V6.9 更新:在这一版本我们再次优化了数据库逻辑,为数据增加索引,同时将查询逻辑进行前置处理,然后提前缓存。那么最终的效果就是:

1. 使用 Redis、并使用最新的 WP 6.1 版本,整体 SQL 数据查询再次减半! 最低实现 2 次查询,平均都能都在 10 次以内,真正实现个位数 sql 查询。

2. 当文章数量超过 2 万以上时有明显的速度提升,至少提升 50%。数据不多一样有提升,当然数据不多的时候由 400 毫秒提升到 350 毫秒就感知不大而已。

子比主题 V6.7 更新:随着主题更新,增加了不少了新功能。大家都知道功能越多相对来说速度也会慢一点,因为 php 需要处理的函数也会增加,没错理论上是这样的。但是我们再次首创 AJAX 后台处理功能,将一些比较消耗时间且必要的处理单独剔出来并转换为:页面加载完成后通过 admin-ajax 请求来后台处理这一部分。所以我们不仅没有变慢,反而再次将页面加载速度提升了 50% 以上!

子比主题 V6 更新:全新 V6 论坛系统采用了更加先进的缓存逻辑或函数规范,相比之前版本性能再次提升 2 - 5 倍以上! 我们强烈建议按照此教程进行优化,v6 版本配合此教程优化后可实现 SQL 查询个位数! 性能直接起飞!

SQL 数据及页面加载数据查看方法在此文章最底部!

主题优化介绍

为了让大家了解什么是极速优化,首先我必须的得再次介绍一下主题是如何做的。

简单的说一个网站打开的流程:wordpress 使用 PHP 为后端服务,由 PHP 进行 html 内容渲染,然后传入用户浏览器。

那么这里我们从速度优化上来讲主要需要重视的两个过程:后台渲染速度和前台网页加载速度

后台渲染速度主要由 PHP 负责,由 php 查询数据库,生成 html 内容再返回给浏览器

前台网页加载速度   主要取决于用户与服务器之间的网速以及请求的内容大小

那么这里我们先说前台加载速度,这一部分最简单易懂,简单的说就是网速快不快,内容大不大。

子比主题在前台加载速度优化上做了哪些优化呢?

全局所有 js 文件,css 文件动态按需加载,注意这个按需加载并不是你开启了这个功能就加载对应的文件,而是说这个页面有这个功能,才会加载这个文件。举例说明:主题 V5.2 开启自带了视频播放器功能,为了让视频播放器支持不同的流媒体格式,那么这个功能一共有 4 个 JS 文件组成 (1 个视频播放器主文件,3 个流媒体格式支持文件),每个文件大约 160KB。如果我们直接加载这四个文件,那就会有 600 多 kb 的内容了,如果你页面没有视频的话,这 600kb 的内容无疑就是浪费了! 主题的动态按需加载就是为了解决这个问题,不管你是否开启此功能,主题会按照当前页面自动检测是否有视频,有的话的就加载对应的 JS 文件,同时自动分析支持的格式加载对应的格式支持 js 文件,不需要的文件一律不加载! 同理,其它 js 和 css 均采用此原来动态按需加载。

全局所有 JS,CSS 文件均采用 UglifyJS 标准进行压缩使用,同时保留了未压缩文件,方便有需要的用户进行修改!

全局所有图片均支持异步懒加载,图片可以说是一个网站最占流量的内容了,开启图片懒加载之后,在用户进入网页的时候不会加载任何图片以提高页面打开速度,然后当用户浏览页面的时候,根据需要,用户看哪里的就加载哪里的图片,当然是提前加载,不会影响用户体验

部分 JS,CSS 内容延迟加载。有一部分的功能可能不会是用户最需要的,或者不是打开页面立即就会使用的,那么这样的功能所需要的文件,我们将它放置在页面全部加载完成之后再进行加载。比如海报分享功能、一言功能、文章目录等功能:使用率较低,并且一般打开页面用户也不会立即使用此功能。

大量的 AJAX 不刷新加载功能,AJAX 就是不刷新加载内容,比如 AJAX 下一页,ajax tab 等,有效的减少请求内容,提高页面加载速度,主题的 AJAX 功能全部使用在不影响 SEO 的内容中!

框架内容支持 CDN 加速,这个一般适用于海外服务器,国内访问较慢的话可以在主题设置开启。

除了以上部分其实还有很多的细节,这是在开发的过程中就一直放在重心的内容。当然除了加载速度,同时主题也在用户浏览体验上做了很多的优化,主题 90% 的动画效果均采用基于硬件加速的动画参数,确保所有动画效果思思顺滑不掉帧,比如幻灯片、图片灯箱等。同时在 js 函数和 CSS 函数编写的时候均采用高效的执行逻辑,避免重复、避免使用高负荷函数等。

后台主要采用 php 以及数据库进行页面渲染,主题开发中保持良好的开发逻辑,并且使用 WP 官方 Object Cache 对象缓存机制,确保函数的高效执行,有效的提高渲染速度

本篇文章我们也重点说一说如何优化后台的渲染速度

优化措施

首先分享一下我的建议以及可以优化速度的有效措施

前台优化:使用 CDN 加速

前台优化:图片使用 OSS/COS 等第三方储存,减少服务器带宽压力

后台优化:不建议使用全静态缓存,会导致很多交互功能不能用

后台优化:推荐使用 Redis 或 Memcached 缓存功能,不会有任何负面影响

后台优化:推荐使用 opcache 进行 PHP 加速优化

Redis 缓存教程

php 在执行函数最消耗时间的就是查询 SQL 数据库了,一般来讲一个页面的数据库查询大概在 120 到 260 次左右,使用 Redis 或者 Memcached 缓存,原理就是将 php 查询过的数据库缓存下来,下一次相同内容就不再查询数据库了,直接从缓存获取,极大的提高 php 执行效率。

WordPress 官方采用 Object Cache 对象缓存,同时主题的也遵循此机制,配合 Redis 或者 Memcached 缓存,能将数据库查询降低 80%,有效的提高了渲染速度!

Redis 和 Memcached 原理是一样的,我们只需要二选一安装使用即可,优化加速的效果也差不多。我就以宝塔环境安装 Redis 为例,进行详细的图文教程。

教程一共分为三步:

  1. 安装 PHP 的 Redis 扩展
  2. 宝塔安装 Redis 程序
  3. wordpress 安装 Redis 缓存插件并开启

安装 PHP:Redis 扩展

进入宝塔,选择到我们目前在使用的 PHP 程序 (推荐使用 PHP7.2),进入安装扩展找到 Redis 并安装:

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图1

等待安装完成之后,记得重启一下 php 服务:

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图2

安装 Redis 程序

进入宝塔的软件商店,搜索 Redis,然后安装即可,安装完成之后无需做任何设置。

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图3

安装 WP 插件

最后一步就是在 Wordpress 安装 Redis 缓存插件了,支持 Redis 缓存 的插件有很多,我这里以  Redis Object Cache  这款插件为例进行安装

  1. 直接在插件中心搜索  Redis Object Cache ,安装即可
  2. 启用插件
  3. 开启缓存

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图4

搜索安装插件

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图5

启用缓存功能

这个功能十分简单,不要觉得是英文插件有会影响使用,开启之后看到如下界面就说明成功了。如果没有开启成功,请按照上面的步骤检测 php 扩展和 Redis 程序是否安装成功

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图6

重要提醒

如果您的服务器有多个网站,并且又要使用 Redis,那么,一定要为网站设置不同的数据库前缀!不然数据会乱窜

Opcache 加速教程

根据 PHP 的执行逻辑,每一个 php 函数在执行的时候 php 会先把此函数进行编译解析。Opcache 是 PHP 官方公司开发的一款 PHP 优化加速扩展,它的原理把 PHP 函数编译解析后的内容进行缓存,从而提高 PHP 的执行速度! 根据测试,能有效的提高 2 到 5 倍左右的执行效率。

安装 Opcache 就十分简单了,直接安装 Opcache 扩展,再重启 PHP 服务即可!

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图7

使用宝塔安装 Opcache 之后会自动配置好扩展参数,如需适当修改,进入配置文件,搜索;opcache,即可看到配置参数:

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图8

对应的配置解释:

opcache.enable=1 (default "1")
;OPcache 打开 / 关闭开关

opcache.memory_consumption=128 (default "64")

;OPcache 共享内存存储大小。用于存储预编译的 opcode(以 MB 为单位)。opcache.interned_strings_buffer=8 (default "4")

;OPcache 字符串驻留大小,(以 MB 为单位)

opcache.max_accelerated_files=80000 (default "2000")

;OPcache 控制内存中最多可以缓存多少个 PHP 文件,建议设置大一点,大于你的项目中的所有 PHP 文件的总和

opcache.revalidate_freq=3 (default "2")

;OPcache 设置缓存的过期时间 (单位是秒); 几秒内内容不会刷新,如果需要实时更新可以设置为 0

opcache.fast_shutdown=1(default“0”)

;OPcache 更快速清理内存的机制,实际效果视环境而异 

查看及分析

缓存安装好了之后,怎么查看效果呢? 之前就有网友叫我加一个显示 sql 查询数量以及 php 渲染时间的功能,其实这个一直都是有的,使用火狐浏览器或者 Chrome 浏览器按 F12 进入浏览器控制台 Console 就能看到了。你可以测试一下,未开缓存以及开启缓存的实际效果。

使用Redis和opcache为网站加速教程&浅谈快到起飞的子比主题插图9

最后温馨提醒:

主题更新或者更新重要内容请记得刷新缓存!

使用缓存之后,部分不太重要的数据就不会实时更新,主题会自动判断! 这种不重要的内容无需关注

适当优化,如果未优化就能低于 500 毫秒那就不建议再做优化了

同一个服务器有多个网站,并且又要使用 Redis,那么一定要为网站设置不同的数据库前缀! 不然数据会乱窜

最新郑重提醒,不要用其他会静态缓存的插件或者功能,静态缓存会导致页面所有内容不能实时刷新,比如登录、注册、购买、发布、评论、点赞、签到等等等等就按照本文教程配置缓存就完全够了,主题已经做好了缓存策略,该缓存的自动缓存,该刷新缓存的时候也会自动刷新

关于 PHP 版本,我个人实测 php7.2 性能优于 php7.4. 不知道是不是个例,大家可以试试

redis 缓存的特性就是将数据保存到内存中已达到加速的效果,所以比较消耗内存,大概 10 万数据量消耗 2G,仅供参考

最后多说几句,如果通过此教程优化后,页面生成时间还是比较慢,那么可以从以下几点来分析了:

你网站的数量有多少? 如果数据量巨大,那肯定会再稍微慢一点是正常的,这个数据仅供参考:2 万文章以为 400-600 毫秒,5 万文章 800-1000 毫秒,10 万文章以上 1.2-1.5 秒左右。(包含文章加帖子)

服务器性能问题,并且请勿认为配置 = 性能,很多站长认为我用的 8 核 16G 服务器性能应该很强,但实际上很多小公司的 8 核 16G 的性能还比不上大公司的 2 核 4G,主要是因为部分小厂虚标严重,且 CPU 比较老。所以我们推荐使用阿里、腾讯、华为、百度等大公司服务器。官网使用的是华为云 2 核 4G5M 的 C6S 服务器,大约 1500 一年,仅供参考

还有很重要的一点就是网站的数据来源,如果你的文章或其他数据不是通过网站正常发布的,例如:采集的、数据库导入的等,那么这种数据会极大的影响速度! 要问为什么? 我们就需要了解发布内容的流程逻辑了,我们在网站正常发布一篇文章,系统会有很多依赖数据会进行判断并更新写入,如果你是采集的内容,那么这些依赖数据多数都会缺失,这就会导致查询数据的时候多走弯路,从而导致加载速度变慢! 我知道有些采集软件可以补充部分依赖的 Meta 数据,但是很多关联的依赖数据是无法写入的,举个例子:发文章系统会更新的依赖数据:该文章所有分类、标签的总文章数、总阅读数,该文章作者的热度、能获得多少积分、经验值等,文章内的图片数据查询等等、文章相关数据缓存的储存等等。当然也不是说不能采集,只是说非正常发布的内容越多,对速度影响越大!

海外服务器,这一点主要影响的是网络速度,毕竟是海外网络速度肯定没有国内稳定可靠,如果确实要用海外的服务器,建议首选大厂的香港、台湾

你的工作,由 AI 赋能!🔥

还在为文案、脚本卡壳、做视频、写代码、设计图片灵感枯竭而烦恼吗?🤯

板板 AI,你的工作好帮手!

一键生成    各种文案、脚本、图片、视频、代码、报告,轻松应对各种工作 / 营销需求!

现在注册体验,即可获得:

  • 🎁 30 积分基础模型余额
  • 🎁 3 积分高级模型余额
  • 🎁 3 积分绘画余额

还不快来试试?

点击链接,开启你的 AI 创作之旅!>>>https://www.banbanai.cn

板板 AI,让你的工作效果发挥无限可能! 🚀

正文完
关注板板AI免费获得移动AI助手
post-qrcode
 
天天
版权声明:本站原创文章,由 天天 2024-10-24发表,共计5062字。
转载说明:

本文由 天天资讯网 整理发布,转载请注明出处.
版权声明:部分文章内容或图片来源于网络,我们尊重作者的知识产权。如有侵犯,请联系我们在第一时间删除。

文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月
文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月
文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月
文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月
文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月 文字广告位10/月

温馨提示:请在上面搜索| 查找更多免费资源,如需广告位请联系站长QQ 48704478

《家庭财务宝典》