在宝塔面板使用 Memcached 减少 WordPress 网站上的数据库负载

目录
文章目录隐藏
  1. 什么是内存缓存?
  2. Memcached 有什么用?
  3. Memcached 是如何工作的?
  4. 如何使用 Memcached?
  5. 在服务器上安装 Memcached
  6. 检查 Memcached 是否正在运行

利用 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 工作如下:

  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 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

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

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 在宝塔面板使用 Memcached 减少 WordPress 网站上的数据库负载

发表回复