Memcached 教程

2025 年 4 月 6 日 | 阅读 4 分钟
Memcached Tutorial

Memcached 教程提供了 Memcached 的基本和高级概念。 我们的 Memcached 教程专为初学者和专业人士设计。

Memcached 是一个免费的、开源的、高性能的分布式内存对象缓存系统。 Memcached 用于通过减少数据库负载来加速动态 Web 应用程序。 Memcached 被所有拥有大量数据的大型网站使用,例如 YouTube、维基百科、Twitter 等。

在这里,您将学习什么是 Memcached、Memcached 的历史、Memcached 的组件、Memcached 的特性、Memcached 的缺点、Memcached 的工作原理、Memcached 的安装过程、Memcached 存储命令、如何在 Memcached 中设置、获取、替换、删除数据等。

什么是 Memcached?

Memcached 读作 mem-cash-dee 或 mem-cached。 它是一个免费的、开源的、高性能的分布式内存对象缓存系统。 Memcached 用于通过减少数据库负载来加速动态 Web 应用程序。 Memcached 被所有拥有大量数据的大型网站使用,例如 YouTube、维基百科、Twitter 等。

Memcached 用于内存缓存软件,因为它很容易安装在任何 Windows 或 Unix 系统上。 它为所有主要语言(如 PHP、Java、C/C++、Python、Ruby、Perl 等)提供 API 集成。

它基于键值存储数据,用于小的任意字符串或对象,包括

  • 数据库调用的结果
  • API 调用
  • 页面渲染

Memcached 的历史

Memcached 最初由 Danga Interactive 的 Brad Fitzpatrick 于 2003 年为 LiveJournal 开发。它用 Perl 编写,但由 Anatoly VorobeyC 重写。

Memcached 的组成部分

Memcached 由 4 个主要组件组成。 这些组件允许客户端和服务器协同工作,以尽可能高效地提供缓存数据:

  1. 客户端软件: 用于提供可用 Memcached 服务器的列表。
  2. 基于客户端的哈希算法: 它根据键选择一个服务器。
  3. 服务器软件: 用于将值及其键存储到内部哈希表中。
  4. LRU: LRU 代表最近最少使用。 这决定了何时丢弃旧数据或重用内存。

Memcached 的特点

  • 它是开源的。
  • 它非常可扩展; 只要添加有备用内存的盒子即可。
  • Memcached 作为独立服务运行。 因此,如果您关闭您的应用程序,只要服务运行,缓存的数据将保留在内存中。
  • Memcached 服务器是一个大的哈希表。
  • 它减少了数据库负载。
  • 它对于数据库负载高的网站非常有效。
  • 缓存节点非常无知:这意味着它们对参与的其他节点一无所知。 这使得此类系统的管理和配置变得非常容易。
  • 它在 BSD(伯克利软件发行版)许可证下分发。
  • 它是一个通过 UDP 或 TCP 的客户端服务器应用程序。

Memcached 的缺点

  • 它不是一个容错工具。
  • 与内存缓存相比,它非常慢,这主要是由于序列化或反序列化和网络延迟造成的。
  • 缓存节点非常无知:例如,无法迭代所有缓存的项目。
  • 它不是一个持久性数据存储。

Memcached 的工作原理?

如上所述,Memcached 有四个主要组件,这些组件使其能够存储和检索数据。 每个项目都由一个键、一个过期时间和原始数据组成。 在高层次上,Memcached 的工作方式如下

  • 客户端请求一块数据,然后 Memcached 检查它是否存储在缓存中。
  • 可能有两种可能的结果
    • 如果数据存储在缓存中:从 Memcached 返回数据(无需检查数据库)。
    • 数据未存储在缓存中:查询数据库,检索数据,然后将其存储在 Memcached 中。
  • 每当信息被修改或项目的过期值已过期时,Memcached 都会更新其缓存以确保将新鲜内容交付给客户端。

此设置有各种 Memcached 服务器和许多客户端。 客户端使用散列算法来确定要使用的 memcahed 存储服务器。 这有助于分配负载。

然后服务器计算键的第二个哈希值,以确定它应该在内部哈希表中存储对应的值。 关于 Memcached 架构的一些重要事项是

  • 数据仅发送到一台服务器
  • 服务器不共享数据
  • 服务器将值保存在 RAM 中 - 如果 RAM 耗尽,则丢弃最旧的值。

Memcached 教程索引



前提条件

在学习 Memcached 之前,您应该具备数据结构和缓存工作原理的基本知识。

目标受众

我们的 Memcached 教程专为初学者和专业人士设计。

问题

我们向您保证,您不会在此 Memcached 教程中发现任何问题。 但如果有任何错误,请在联系表格中发布问题。