学课技术网
专注PHP学习资源

使用 Memcached 减少 WordPress 网站上的数据库负载

使用 Memcached 减少 WordPress 网站上的数据库负载 在2021-12-18 23:58 进行了更新,本站所有内容仅供大家仅供学习交流使用,请勿转载传播,严禁用于商业用途,请于24小时内删除,请支持正版!!!

Memcached 是驻留在您的托管服务器上的缓存机制之一。它主要处理有助于减少数据库负载导致快速加载网页的数据库查询。如果您的网站/商店严重依赖数据库查询,使用 Memcached 可以让 WordPress 网站显着提高性能并减少页面加载时间。

使用 Memcached 减少 WordPress 网站上的数据库负载

开始之前,建议阅读一下:什么是对象缓存以及如何在WordPress中使用它

什么是内存缓存?

根据 Memcached 官方网站,Memcached 是一个:

“免费和开源、高性能、分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。

Memcached 是一种内存键值存储,用于存储来自数据库调用、API 调用或页面渲染结果的任意小块数据(字符串、对象)。”

简单来说,Memcached 是一个分布式临时对象缓存系统,它将字符串和对象存储在服务器的内存中,这些对象是处理数据库查询、API 调用或页面渲染产生的。用于此机制的服务器可以称为 Memcached 服务器。

Memcached 有什么用?

Memcached 用于通过减少数据库负载来加速动态 Web 应用程序,如电子商务商店、注册/登录网站等。它存储处理后的结果,因此每当访问者再次请求相同的查询时,Memcached 可以响应该查询而不是处理查询和回复。通过保持服务器不那么繁忙,您的访问者将体验到更快的加载时间和更好的用户体验。

Memcached 是如何工作的?

每次访问者/浏览器请求需要数据库处理和响应的服务器时,都会给服务器增加负载。Memcached 通过将数据对象存储在临时动态内存中来减少负载。它将数据保存在键值上并在将浏览器的请求发送到数据库之前检查其内存。如果存在缓存,它会在不涉及要处理的数据库的情况下回复请求。

如上所述,Memcached 是一个分布式内存对象缓存系统,由四个主要组件组成:

  • 客户端软件:接收分布式可用 Memcached 服务器的列表。
  • 基于客户端的哈希算法:根据键值选择服务器。
  • 服务器软件:将数据(值)和键存储到内部哈希表中。
  • 服务器算法:确定何时删除旧数据并重用内存。

上述组件允许 Memcached 存储和检索数据。每个项目包括一个:

  • 键值
  • 到期时间
  • 原始数据

当一个项目被请求时,Memcached 会在回复请求之前验证它的过期时间以查看该项目是否仍然有效。如果缓存不存在,它会将请求发送到数据库以处理结果并将结果存储为一个项目。如果服务器内存不足,它会查找并替换过期的项目。如果它仍然需要任何信息,它会查找特定时间段内未请求的项目。通过这种方式,Memcached 将更多最近请求的信息保存在动态内存中。

高级 Memcached 工作如下:

  1. Memcached 检查请求的数据是否存储在缓存中。
  2. 两种可能的输出:– 数据存储在缓存中:在不中断数据库的情况下从 Memcached 返回请求的数据。– 数据不存储在缓存中:执行请求的查询,处理和检索数据,并将结果保存在内存中。
  3. 每当项目有更新或项目过期时,Memcached 都会更新其缓存并确保将新鲜内容传送到请求的客户端。

如何使用 Memcached?

使用 Memcached 涉及两个步骤。首先,它必须安装在您的托管服务器上,然后您的应用程序应该能够支持 Memcached。

在服务器上安装 Memcached

Memcached 不需要很多 CPU 资源。它完全依赖于内存。如果您有 8GB 内存的 Web 服务器,但操作系统和您的网站仅消耗 4GB,那么最好将剩余的内存分配给 Memcached 实例以增加其存储容量。 在此处阅读所有技术要求。

Memcached 适用于大多数基于 Linux 的服务器,安装 Memcached 只需两个 Linux 命令即可。通常,您应该从操作系统(Debian、Ubuntu 等)提供的软件包中安装 Memcached。操作系统将为您解决依赖关系并负责安全更新。

对于 Debian 或 Ubuntu 用户:

命令:apt-get install memcached 

对于 Redhat/Fedora:

命令:yum install memcached 

有关更多信息,请参阅您各自操作系统的文档。值得一提的是,最流行的反向代理服务器之一 Nginx 预装了 Memcached 模块,提供了最灵活的 Nginx Memcached 捆绑解决方案。

注:如果是宝塔用户,可以直接在软件商店中,进入 PHP 的设置选项,在【安装扩展】选项卡进入安装即可:

宝塔面板安装Memcached

检查 Memcached 是否正在运行

有多种方法可以测试 Memcached 是否正在运行。其中之一是使用 Telnet,登录到您的服务器 SSH 终端并编写以下命令:

telnet localhost 11211

telnet 127.0.0.1 11211

PS:如果本地服务器是您的 Memcached 服务器,则会运行上述命令。

如果上面的命令运行成功,你会得到以下结果:

Connected to localhost.Escape character is '^]'.

否则会出现连接错误

要检查一些基本统计信息,您可以使用以下命令:stats

你会得到如下内容:

STAT pid 313STAT uptime 2778636STAT time 1535727399STAT version 1.4.21STAT libevent 2.0.21-stableSTAT pointer_size 64STAT rusage_user 47.119322STAT rusage_system 48.765342STAT curr_connections 1STAT total_connections 151198STAT connection_structures 3STAT reserved_fds 20STAT cmd_get 46STAT cmd_set 4STAT cmd_flush 0STAT cmd_touch 0STAT get_hits 30STAT get_misses 16STAT delete_misses 0STAT delete_hits 0STAT incr_misses 0STAT incr_hits 0STAT decr_misses 0STAT decr_hits 0STAT cas_misses 0STAT cas_hits 0STAT cas_badval 0STAT touch_hits 0STAT touch_misses 0STAT auth_cmds 0STAT auth_errors 0STAT bytes_read 22942STAT bytes_written 3433252STAT limit_maxbytes 268435456STAT accepting_conns 1STAT listen_disabled_num 0STAT threads 4STAT conn_yields 0STAT hash_power_level 16STAT hash_bytes 524288STAT hash_is_expanding 0STAT malloc_fails 0STAT bytes 106STAT curr_items 1STAT total_items 4STAT expired_unfetched 0STAT evicted_unfetched 0STAT evictions 0STAT reclaimed 0STAT crawler_reclaimed 0STAT lrutail_reflocked 0

要检查项目,请使用:stats items

结果:

STAT items:2:number 1STAT items:2:age 2486STAT items:2:evicted 0STAT items:2:evicted_nonzero 0STAT items:2:evicted_time 0STAT items:2:outofmemory 0STAT items:2:tailrepairs 0STAT items:2:reclaimed 0STAT items:2:expired_unfetched 0STAT items:2:evicted_unfetched 0STAT items:2:crawler_reclaimed 0STAT items:2:lrutail_reflocked 0

要检查当前内存统计信息,请写入:  stats slices

结果:

STAT 2:chunk_size 120STAT 2:chunks_per_page 8738STAT 2:total_pages 1STAT 2:total_chunks 8738STAT 2:used_chunks 1STAT 2:free_chunks 8737STAT 2:free_chunks_end 0STAT 2:mem_requested 106STAT 2:get_hits 30STAT 2:cmd_set 4STAT 2:delete_hits 0STAT 2:incr_hits 0STAT 2:decr_hits 0STAT 2:cas_hits 0STAT 2:cas_badval 0STAT 2:touch_hits 0STAT active_slabs 1STAT total_malloced 1048560

要退出连接类型输入 quit 并按回车键 enter

在您的 WordPress 站点上集成 Memcached

正如前面所提到的,首先确保你的服务器已经安装并启用 Memcached 组件,然后才能通过插件来集成到 WordPress。在这里,我们介绍集成了 Memcached 功能开关的 W3 Total Cache 插件的设置,以及仅仅用于启用 Memcached 的 Use Memcached 插件的方式。二者选其一即可。

W3 Total Cache 插件

市场上有很多WordPress 缓存插件 可用。它们中的大多数都像 W3 Total Cache 一样支持 Memcached,它是使用最广泛的缓存插件之一,允许您配置 Memcached。如果您是 W3 Total Cache 用户,请导航到“常规设置”选项卡并从下拉列表中选择 Memcached,其中显示:

  • 页面缓存
  • 缩小缓存
  • 数据库缓存

W3 Total Cache 插件启用Memcached

保存所有设置,不要忘记清除一次缓存。

Use Memcached 插件

在进行搜索时,我们发现了一个名为Use Memcached的相对较新的对象缓存插件,因此我们决定对其进行测试。

如果您在服务器上使用具有默认值的 Memcached 服务,即主机 127.0.0.1 (localhost) 和端口 11211,那么您不需要配置任何东西。

第 1 步:安装 Use Memcached 插件

只需转到您的 WordPress 仪表板,然后从左侧边栏中转到插件 > 安装插件并搜索 Use Memcached 插件。点击安装,然后点击激活

安装 Use Memcached 插件

第 2 步:启用 Memcached

安装插件后,转到工具 > Use Memcached ,您应该会看到启用 Memcached 集成的选项

启用 Memcached

单击启用 Memcached 后,应在您的站点上启用对象缓存。

启用对象缓存

WP-CLI 集成

这个 Use Memcached 插件最好的地方之一是它与 WP-CLI 集成,我们可以使用wp memcache <command>处理插件。

子命令

wp memcache flush -> Flush memcache
wp memcache stats -> Memcache stats

定义 WP_CACHE_KEY_SALT 以避免缓存冲突

如果您要在同一台服务器上托管的多个站点上集成 Memcached,那么请确保您在 wp-config.php 中定义了WP_CACHE_KEY_SALT这一步对于避免同一服务器上多个站点之间的缓存冲突非常关键,只需复制粘贴下面的代码在你的 wp-config.php

define ('WP_CACHE_KEY_SALT', 'yourdomain.com');

请记住将yourdomain.com替换为您自己的站点 URL。添加代码后,请确保清除您网站上的缓存以确保一切正常。

总结

Memcached 被认为是加速 WordPress 站点的方法之一, 如果配置正确,因为它减少了数据库负载并保持服务器不那么繁忙,从而获得更好的性能和页面加载时间。

在本教程中,您已经成功地学习了如何将 Memcached 集成为您的 WordPress 站点的对象缓存,请在评论部分告诉我们本指南是否对您有用。

拓展阅读:

  • WordPress缓存指南及缓存插件推荐
  • 为什么缓存插件对您的WordPress网站至关重要
  • 什么是对象缓存以及如何在WordPress中使用它
  • WordPress缓存插件导致admin-ajax.php 403的解决方案
  • 提高 woocommerce 商店速度的十种方法
  • 非常棒的WordPress缓存优化插件 WP Rocket
 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载,如果本站内容侵犯了您的个人利益,请联系QQ125252828告知。学课技术网 » 使用 Memcached 减少 WordPress 网站上的数据库负载
分享到: 更多 (0)

相关推荐

  • 暂无文章

评论 抢沙发

评论前必须登录!

立即登录   注册

学课技术网专注软件汉化、分享、解密、绿化、Wordpress主题插件优化

联系我们技术支持
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册