Memcached是什么?

Memcached 是 2003 年发明的免费开源缓存解决方案。它使用字符串存储数据,并且可以存储的数据量仅受存储硬件的限制。

Memcached 是一个高性能的分布式内存对象缓存系统。其主要目的是缓存频繁访问的数据,以减少数据库压力,从而缩短响应时间。

Memcached 的指导原则之一是它非常强调简单性和速度。它使用简单的键值数据模型,使您无需复杂的查询语言即可轻松访问数据。

如果它没有足够的空间来存储数据,它将开始覆盖一段时间内未使用的最旧数据。对于某些行业来说,这可能有些问题,因此,需要采取适当的程序来确保重要信息不会丢失。

费和开源的高性能分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。Memcached 是一种内存键值存储,用于存储来自数据库调用、API 调用或页面呈现结果的小块任意数据(字符串、对象)。

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

YouTube、Reddit、Facebook、Twitter 和 Wikipedia 等互联网巨头依靠 Memcached 来增加页面加载时间。

简单理解 Memcached 和对象缓存

页面缓存处理静态资源(如图像、HTML、CSS 和 JS 文件)的缓存,浏览器缓存优化用户浏览器中的资源存储;而对象缓存则专门针对数据库。

对象缓存的主要用途是缓存数据库中的查询结果。

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

为了解决这个问题,WordPress 早在 2005 年就推出了对象缓存类 WP_Object_Cache。WP_Object_Cache类充当缓存数据库查询结果的机制,显著提高网站性能并减少服务器负载。通过利用对象缓存,WordPress 网站可以有效地优化其数据库性能,从而实现更快的响应时间和更流畅的用户体验。

Memcached 是如何工作的?

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

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

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

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

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

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

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

概括地说,Memcached 的工作方式如下:

  • 它检查请求的数据以查看它是否存储在缓存中。
  • 两种可能的输出:
  • a,数据存储在缓存中:在不中断数据库的情况下从 Memcached 返回请求的数据。
  • b,数据不存储在缓存中:执行请求的查询,处理和检索数据,并将结果保存在内存中。
  • 每当项目有更新或项目过期时,Memcached 都会更新其缓存并确保将新内容交付给请求的客户端。

如何确定Memcached安装成功?

不管是宝塔还是军哥的lnmp,安装成功都有提醒。Memcached的端口是固定的:11211 。

我爱水煮鱼的wpjam插件,也可以测试Memcached是否安装成功。

另外,著名的WordPress缓存插件W3TC(w3 total cache)插件的页面缓存,CSS,JS压缩,数据库缓存如果可以选择Memcached,也说明安装成功。

如何使用Memcached ?

安装完Memcached以后,就是使用的问题。

我爱水煮鱼的wpjam插件,可以查看Memcached的相关数据。

W3TC(w3 total cache)插件相关设置,选择Memcached缓存即可。

Similar Posts

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *