Memcached 内存缓存可减少 WordPress 站点数据库的负载
Memcached 是驻留在托管服务器上的缓存机制之一。它主要处理数据库查询,这有助于减少数据库负载,从而实现网页的快速加载。如果您的网站/商店依赖于数据库请求,那么使用 Memcached 可以显着提高 WordPress 网站的性能并减少页面加载时间。 ![]()
什么是内存缓冲区?
根据 Memcached 官方网站,Memcached 是:
“一个免费、开源、高性能、分布式内存对象缓存系统,它是通用的,但旨在通过卸载数据库负载来加速动态 Web 应用程序。
Memcached 是一个内存中键值存储,用于存储来自数据库调用、API 调用或页面渲染结果的任意小块数据(字符串、对象)。”
Memcached 简单来说就是一个分布式临时对象缓存系统,由于处理数据库查询、API 调用或页面渲染而将字符串和对象存储在服务器内存中。使用这种机制的服务器可以称为 Memcached 服务器。
Memcached 是用来做什么的?
Memcached 用于通过减少数据库负载来加速动态 Web 应用程序,例如电子商务商店、注册/登录站点等。它存储处理后的结果,以便每当访问者再次请求相同的查询时,Memcached 都可以回答该查询而不是处理查询和响应。保持服务器不那么繁忙,您的访问者将体验到更快的加载时间和更好的用户体验。服务器。 Memcached 通过将数据对象存储在临时动态内存中来减少负载。它将数据存储在键值上,并在将浏览器的请求发送到数据库之前检查内存。如果缓存存在,它会应答请求,而不涉及正在处理的数据库。
如上所述,Memcached 是一个内存中分布式对象缓存系统,由四个主要组件组成:
- 客户端软件: 接收可用 Memcached 服务器的分布式列表。
- 基于客户端的哈希算法:根据键值选择服务器。
- 服务器软件:将数据(值)和键存储在内部哈希表中。
- 服务器算法:确定何时应删除旧数据并重用内存。
上述组件允许 Memcached 存储和检索数据。每个项目由以下各项组成:
- 键值
- 过期时间
- 原始数据
当请求某个项目时,Memcached 会在响应仍然响应之前验证过期时间以查看请求是否有效。如果缓存不存在,则将请求发送到数据库来处理结果并将结果存储为项目。如果服务器内存不足,它将查找并替换过期的项目。如果它仍然需要信息,它会查找在特定时间段内未请求的项目。通过这种方式,Memcached 在动态内存中保留最近请求的信息。
高级Memcached的工作原理如下:
- Memcached检查请求的数据是否存储在缓存中。
- 两种可能的输出: – 数据存储在缓存中:请求的数据从 Memcached 返回,而不中断数据库。 – 数据不缓存:执行请求的查询,处理和检索数据,并将结果存储在内存中。
- 每次更新项目或项目过期时,Memcached 都会更新其缓冲区并确保将新内容交付给发出请求的客户。
如何使用 Memcached?
使用 Memcached 涉及两个步骤。首先,它必须安装在您的主机服务器上,然后您的应用程序必须能够支持 Memcached。
在服务器上安装Memcached
Memcached不需要大量的CPU资源。它完全依赖于记忆。如果您的 Web 服务器具有 8 GB RAM,但操作系统和您的网站仅使用 4 GB,则最好将剩余内存分配给 Memcached 实例以增加存储容量。请在此处阅读所有技术要求。
Memcached 适用于大多数基于 Linux 的服务器。安装 Memcached 仅需要两个 Linux 命令。通常,您应该从操作系统(Debian、Ubuntu 等)提供的软件包中安装 Memcached。操作系统将为您解决依赖关系并负责安全更新。
对于 Debian 或 Ubuntu 用户:
命令:apt-get install memcached
对于 Redhat/Fedora:
❓
命令:更多信息请咨询您各自的文档操作系统。值得一提的是,Nginx作为最流行的反向代理服务器之一,预装了Memcached模块,提供了最灵活的Nginx Memcached套餐解决方案。
注:如果您是宝塔用户,可以直接进入软件商店中的PHP设置选项,在【安装扩展】选项卡中进入安装: ![]()
检查Memcached是否正在运行
有有多种方法可以测试 Memcached 是否正在运行。其中一种是使用 Telnet,登录到服务器的 SSH 终端并键入以下命令:
telnet localhost 11211或
telnet 127.0.0.1 11211PS: 如果本地服务器是您的 Memcached 服务器,则会运行上述命令。
如果上述命令成功运行,您将得到以下结果:
Connected to localhost.
Escape character is '^]'.否则,将显示连接错误。
要检查一些基本统计数据,您可以使用以下命令: stats
您将得到类似以下内容:
STAT pid 313
STAT uptime 2778636
STAT time 1535727399
STAT version 1.4.21
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 47.119322
STAT rusage_system 48.765342
STAT curr_connections 1
STAT total_connections 151198
STAT connection_structures 3
STAT reserved_fds 20
STAT cmd_get 46
STAT cmd_set 4
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 30
STAT get_misses 16
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 22942
STAT bytes_written 3433252
STAT limit_maxbytes 268435456
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 106
STAT curr_items 1
STAT total_items 4
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT lrutail_reflocked 0要检查项目,请使用: ⸀stats items
STAT items:2:number 1
STAT items:2:age 2486
STAT items:2:evicted 0
STAT items:2:evicted_nonzero 0
STAT items:2:evicted_time 0
STAT items:2:outofmemory 0
STAT items:2:tailrepairs 0
STAT items:2:reclaimed 0
STAT items:2:expired_unfetched 0
STAT items:2:evicted_unfetched 0
STAT items:2:crawler_reclaimed 0
STAT items:2:lrutail_reflocked 0 要检查要查看当前内存统计信息,请键入: stats slices
结果:
STAT 2:chunk_size 120
STAT 2:chunks_per_page 8738
STAT 2:total_pages 1
STAT 2:total_chunks 8738
STAT 2:used_chunks 1
STAT 2:free_chunks 8737
STAT 2:free_chunks_end 0
STAT 2:mem_requested 106
STAT 2:get_hits 30
STAT 2:cmd_set 4
STAT 2:delete_hits 0
STAT 2:incr_hits 0
STAT 2:decr_hits 0
STAT 2:cas_hits 0
STAT 2:cas_badval 0
STAT 2:touch_hits 0
STAT active_slabs 1
STAT total_malloced 1048560 要退出连接类型,请键入 如前所述,首先确保您的服务器已安装并启用 Memcached 组件,然后再通过插件将其集成到 WordPress 中。这里我们介绍集成Memcached功能开关的W3 Total Cache插件的设置,以及仅用于启用Memcached的Use Memcached插件。只需选择两者之一即可。 市场上有许多 WordPress 缓存插件。它们中的大多数都支持 Memcached,例如 W3 Total Cache,这是最常用的缓存插件之一,允许您配置 Memcached。如果您是 W3 Total Cache 用户,请导航至 常规设置 选项卡,然后从下拉列表中选择 Memcached,其中显示: 在搜索时,我们遇到了一个相对较新的对象缓存插件,名为 使用 Memcached,因此我们决定对其进行测试。 如果您在服务器上使用默认值的Memcached服务,即主机127.0.0.1(localhost)和端口11211,您不需要配置任何东西。 只需转到 WordPress 仪表板,然后从左侧边栏转到 插件 > 安装插件 并搜索 安装插件后,转到工具>使用memcached,您应该看到启用memcached集成的选项 单击启用memcached后,您应该启用对象缓存在您的网站上。 这个使用 Memcached 插件最好的事情之一是它与 WP-CLI 集成,我们可以使用 p 来管理插件。 子命令 请记住将 yourdomain.com 替换为您自己的网址。添加代码后,请务必清除站点的缓存,以确保一切正常工作。 如果配置正确,Memcached 被认为是加速 WordPress 网站的方法之一,因为它可以减少数据库负载并保持服务器不那么繁忙,从而提高性能和页面加载时间。quit❙quit❀ 并按 Enterenter❀ 。 将 Memcached 集成到您的 WordPress 网站
W3 Total Cache Plugin
使用 Memcached 插件
第 1 步:安装使用 Memcached 插件
![]()
插件。单击 安装,,然后单击 激活 。
![]()
第2步:启用memcached
![]()
![]()
WP-CLI 集成
wp memcache flash -> Flush memcache
wp memcache-statistics -> Memcache-statisticsP_CACHE_Define Wche 如果您要在同一台服务器上托管在多个站点上集成 Membufret ,并确保在 wp-config.php 中定义 WP_CACHE_KEY_SALT。这一步对于避免同一服务器上多个站点之间的缓存冲突非常重要。只需复制并粘贴 wp-config.php 中的代码即可 define ('WP_CACHE_KEY_SALT', 'yourdomain.com');总结
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网