如何在Ubuntu上安装和配置Memcached?


介绍

Memcached是一个免费的、开源的、高性能的分布式内存缓存系统。它通常用于通过将数据和对象缓存到内存中来加快动态 Web 应用程序的速度,从而减少应用程序必须查询数据库或其他数据存储的次数。Memcached 也常用于微服务架构中,用作不同服务之间的共享缓存。

在本文中,我们将讨论如何在 Ubuntu 上安装和配置 Memcached。

步骤 1:安装 Memcached

第一步是在您的 Ubuntu 系统上安装 Memcached 包。您可以使用以下命令安装它:

sudo apt-get update
sudo apt-get install memcached

安装完成后,您可以使用以下命令启动 Memcached:

sudo systemctl start memcached

步骤 2:配置 Memcached

默认情况下,Memcached 监听本地主机 (127.0.0.1) 接口并使用端口 11211。这意味着 Memcached 只能从运行它的同一台机器访问。如果您想从其他机器访问 Memcached,则需要更改配置文件。

为此,请使用您喜欢的文本编辑器打开 Memcached 配置文件。配置文件位于 /etc/memcached.conf。

sudo nano /etc/memcached.conf

在此文件中,您可以更改以下设置:

  • -l - 这设置 Memcached 监听的 IP 地址。默认情况下,它设置为 127.0.0.1,这意味着 Memcached 只监听本地主机接口。如果您想监听所有可用的网络接口,可以将其设置为 0.0.0.0。

  • -p - 这设置 Memcached 监听的端口。默认情况下,它设置为 11211。

  • -m - 这设置 Memcached 允许使用的内存量。默认情况下,它设置为 64 兆字节。您可以根据需要增加此值。

更改配置文件后,保存并退出文本编辑器。

步骤 3:测试 Memcached

要测试 Memcached 是否正常工作,您可以使用 telnet 命令连接到 Memcached 并运行一些基本命令。

telnet localhost 11211

这将打开到 Memcached 的 telnet 会话。然后,您可以输入以下命令:

set mykey 0 60 5
hello

这将在 Memcached 中使用键“mykey”存储字符串“hello”,持续时间为 60 秒。然后,您可以通过运行以下命令来检索键的值:

get mykey

这应该返回值“hello”。如果返回,则 Memcached 正常工作。

步骤 4:为您的应用程序配置 Memcached

确认 Memcached 正常工作后,您可以配置您的应用程序以使用 Memcached 作为缓存机制。执行此操作的确切步骤取决于您使用的编程语言和框架。

以下是如何使用 PHP 使用 Memcached 的示例:

$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

$key = 'mykey';
$value = $memcached->get($key);

if (!$value) {
   $value = 'hello';
   $memcached->set($key, $value, 60);
}

echo $value;

在此示例中,我们创建 Memcached 类的新实例,并向其中添加本地主机服务器。然后,我们尝试从 Memcached 检索键“my key”的值。如果值不存在,我们将其设置为“hello”并将其与 60 秒的 TTL 存储在 Memcached 中。最后,我们打印出该值。

以下是一些使用 Memcached 的其他技巧和最佳实践:

  • 使用一致的键命名约定 - 使用 Memcached 缓存数据时,务必为您的键使用一致的命名约定。这将使以后更容易检索数据。一种常见的约定是在键前加上应用程序或服务的名称。

  • 监控 Memcached 性能 - Memcached 具有内置的性能指标,可以使用 memcached-tool 或 telnet 等工具进行监控。监控这些指标可以帮助您识别潜在的性能瓶颈并调整 Memcached 配置以获得最佳性能。

  • 使用客户端库 - 虽然可以使用原始 telnet 命令与 Memcached 交互,但使用编程语言或框架的客户端库更容易且更高效。大多数客户端库都提供面向对象的接口,简化了从 Memcached 存储和检索数据的过程。

  • 将 Memcached 与备份数据存储一起使用 - Memcached 是内存缓存,这意味着服务器重启或崩溃时数据会丢失。为防止数据丢失,最好将 Memcached 与备份数据存储(例如数据库或文件系统)结合使用。

  • 将 Memcached 与负载均衡器一起使用 - 为了确保 Memcached 高可用性和可扩展性,最好将其与负载均衡器一起使用。这将跨多个 Memcached 服务器分配负载,防止任何一台服务器成为瓶颈。

  • 将 Memcached 与一致的哈希算法一起使用 - 将 Memcached 与多台服务器一起使用时,务必使用一致的哈希算法来跨服务器分配数据。一致的哈希确保每个键始终映射到同一台服务器,即使池中的服务器数量发生变化。

  • 设置适当的 TTL 值 - 将数据存储在 Memcached 中时,务必为每个键设置适当的 TTL(生存时间)值。TTL 值决定键在 Memcached 中存储多长时间,之后才会被认为已过期并被删除。设置适当的 TTL 值可以帮助防止向用户提供陈旧的数据。

  • 将 Memcached 用于读密集型工作负载 - Memcached 在用于读密集型工作负载(例如服务大量读取请求的 Web 应用程序)时最为有效。对于写密集型工作负载,使用数据库或其他数据存储可能更有效。

  • 水平扩展 Memcached - Memcached 旨在水平扩展,这意味着您可以随着应用程序的增长向 Memcached 集群添加更多服务器。水平扩展允许您在无需升级单个服务器的情况下增加 Memcached 集群的容量。

  • 将 Memcached 与其他缓存机制结合使用 - 虽然 Memcached 是一种强大的缓存机制,但它可能并不适用于所有用例。例如,如果您需要缓存复杂的数据结构或维护跨多个节点的一致性,您可能需要使用不同的缓存机制,例如 Redis 或数据库缓存。通过将 Memcached 与其他缓存机制结合使用,您可以同时获得高性能缓存(用于简单数据类型)和更高级的缓存(用于复杂数据类型)的优势。

通过遵循这些额外的技巧和最佳实践,您可以进一步优化 Memcached 的使用,并确保它满足应用程序的性能和可扩展性需求。

结论

在本文中,我们讨论了如何在 Ubuntu 上安装和配置 Memcached。Memcached 是一种强大的工具,可用于通过将数据和对象缓存到内存中来加快动态 Web 应用程序的速度。它易于安装和配置,可以为您的应用程序提供显著的性能提升。只需付出少量努力,您就可以立即在您的应用程序中开始使用 Memcached。

更新于:2023年5月12日

445 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.