学习记录
互联网技术知识

WordPress Memcached 缓存简单介绍

Memcached是一种强大的缓存机制,驻留在托管服务器上,旨在解决数据库查询的繁重负载。它通过减少数据库的压力,大大缩短了页面加载时间并增强了整体用户体验。

什么是Memcached?

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

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

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

简单理解Memcached和对象缓存

页面缓存负责处理图片、HTML、CSS、JS文件等静态资源的缓存;浏览器缓存则优化用户浏览器内的资源存储;而对象缓存则专注于数据库。

对象缓存的主要目的是缓存来自数据库的查询结果。

当用户或爬虫向网站发出请求时,它会生成数据库查询。然而,大量的数据库请求会导致查询大量积累,从而导致服务器过载并导致网站性能下降。

为了解决这个问题,WordPress早在2005年就推出了对象缓存类WP_Object_Cache。WP_Object_Cache类作为缓存数据库查询结果的机制,显著提高了网站性能并减少了服务器负载。

通过利用对象缓存,WordPress网站可以有效优化其数据库性能,从而缩短响应时间并提供更流畅的用户体验。

WordPress Redis 与 Memcached

Memcached 和 Redis 都是广泛使用的内存数据库,但具有一些不同的特点。

让我们探讨一下两者的比较:

WordPress Redis 与 Memcached

总而言之,Memcached和Redis都易于安装和使用,延迟低,并且与流行的编程语言兼容。Memcached适用于缓存和会话存储目的,而Redis擅长处理复杂的流程和多任务。

Memcached是多线程的,适合处理大量数据,而Redis是单线程的,非常适合处理少量数据。Redis提供数据持久性和故障转移机制,而Memcached不具备对这些功能的内置支持。

为什么要在WordPress网站上使用Memcached?

假设有一个流量很大的WordPress网站,当访客访问网站时,他们发现网站速度很慢,因为服务器难以处理不断增加的负载。每个数据库查询都会增加服务器的负担,从而导致性能瓶颈。

但如果有解决方案呢?幸运的是,有解决方案,那就是Memcached。

通过在WordPress网站上实施Memcached,可以将经常访问的数据缓存在RAM中,从而减轻服务器的压力。Memcached通过减少数据库负载来加速电子商务商店、注册/登录网站等动态Web应用程序。

通过减少服务器的繁忙程度,访问者将体验到更快的加载时间和更好的用户体验。

WordPress Memcached:优点和缺点

Memcached作为缓存解决方案具有多项优势,非常适合高流量Web应用程序和大型数据库访问。然而,在做出决定之前,重要的是要考虑其优缺点。

优点:

  • 通过内存键值存储实现极快的响应时间。
  • 可扩展架构,用于垂直扩展计算能力。
  • 用户友好且灵活的应用程序开发。
  • 支持开放数据格式并与各种客户端和编程语言兼容。

缺点:

  • 数据是临时存储的,如果Memcached实例出现故障,数据可能会丢失。
  • 存储数据的可见性有限可能会使调试变得困难。
  • 值的密钥长度限制为250个字符(1MB)。
  • 缺乏内置安全功能,需要额外的措施来保护。
  • 没有用于数据备份的冗余或故障转移机制。

评估这些优点和缺点将帮助确定Memcached是否符合缓存要求。

Memcached如何工作?

每当访问者/浏览器请求需要数据库处理和响应的服务器时,都会增加负载。Memcached通过将数据对象存储在临时动态内存中来减少该负载。

它会保存键值数据,并在将浏览器的请求发送到数据库之前检查其内存。如果缓存存在,它会在不涉及数据库的情况下回复请求。

Memcached是一个分布式内存对象缓存系统,由四大组件组成:

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

上述组件允许Memcached存储和检索数据。每项数据均由以下部分组成:

  • 钥匙
  • 到期时间
  • 原始数据

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

从高层次来看,Memcached的工作原理如下:

1、它检查请求的数据,看它是否存储在缓存中。

2、两种可能的输出:

-数据保存在缓存中:在不中断数据库的情况下从Memcached返回请求的数据。

-数据不存储在缓存中:执行请求的查询,处理并检索数据,并将结果保存在内存中。

3、每当某个项目有更新或过期时,Memcached都会更新其缓存并确保将新内容传递给请求的客户端。

如何在WordPress网站上使用Memcached(2种方法)

可以通过三种方式在WordPress网站上使用Memcached:

  • 在托管服务器上手动安装。
  • 使用WordPress Memcached插件。

1、在服务器上安装Memcached(手动方法)

想在服务器上安装Memcached,那么可以尝试手动方法。Memcached不需要大量的CPU资源。它纯粹依赖于RAM。如果拥有一个具有8GB RAM的Web服务器,但操作系统和网站仅消耗4GB,那么可以将剩余的RAM分配给Memcached实例以增加其存储容量。

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

对于Debian或Ubuntu用户:

命令:apt-get install memcached

对于Redhat/Fedora:

命令:yum install memcached

注意:值得一提的是,流行的反向代理服务器之一Nginx预先打包了Memcached模块,提供了灵活的Nginx Memcached捆绑解决方案。

2、在WordPress上安装Memcached(使用插件)

WordPress存储库拥有一些较好的插件,可用于扩展网站的功能。它还提供许多缓存插件,其中大多数都支持Memcached,例如W3TC。如果使用W3TC,可以导航到“常规设置”选项卡,然后从下拉列表中选择Memcached,其中显示:

  • 页面缓存
  • 最小化缓存
  • 数据库缓存

保存所有设置,并且不要忘记清除缓存。

如何检查WordPressMemcached是否已启用

有多种方法可以测试Memcached是否正在运行。其中之一是使用Telnet。

  • 要检查,请登录到您的服务器SSH终端并输入以下命令:
telnet localhost 11211

或者

telnet 127.0.0.1 11211

注意:仅当本地服务器是Memcached服务器时,上述命令才会运行。

  • 如果上述命令成功运行,将得到以下结果:

1.已连接到本地主机。
2.转义字符是’^]’ 。

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 slabs

结果:

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。

总结

如果配置得当,Memcached被认为是加速WordPress网站的较佳方法之一,因为它可以减少数据库负载并降低服务器繁忙程度,从而提高性能并缩短页面加载时间。无需手动在服务器上安装Memcached或依赖W3TC等缓存插件,选择我们托管主机是理想之选。我们服务器Memcached已预安装并激活在其平台上启动的所有服务器上,提供无忧体验。

赞(0)
文章名称:《WordPress Memcached 缓存简单介绍》
文章链接:https://www.bailuze.com/21438.html
本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
本站专注于百度、搜狗、360、谷歌、bing等常见搜索引擎的优化,关键词排名的提高,诚意咨询邮箱526009505@qq.com
分享到