如何在 CentOS 8 上安装和配置 Memcached
Memcached 是一种分布式内存对象缓存系统,通过将频繁访问的数据存储在内存中,减少所需的数据库查询次数,可以显着提高网站或应用程序的性能。在本文中,我们将指导您完成在 CentOS 8 上安装和配置 Memcached 的过程。
步骤1:在CentOS 8上安装Memcached
第一步是在 CentOS 8 系统上安装 Memcached。您可以通过运行以下命令来做到这一点 -
sudo dnf install memcached
此命令将在您的系统上下载并安装 Memcached。
第 2 步:启动 Memcached 并在引导时启用它
安装完成后,需要启动Memcached服务并使其开机自动启动。您可以通过运行以下命令来做到这一点 -
sudo systemctl start memcached
sudo systemctl enable memcached
第一个命令启动 Memcached 服务,第二个命令使其在引导时自动启动。
步骤 3:配置 Memcached
默认情况下,Memcached 侦听端口 11211 并使用 UDP 协议。但是,您可以将 Memcached 配置为侦听不同的端口并使用 TCP 协议。为此,您需要修改 Memcached 配置文件。
sudo nano /etc/sysconfig/memcached
这将在 Nano 文本编辑器中打开 Memcached 配置文件。您可以修改配置文件如下 -
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1"
PORT - 这指定 Memcached 侦听的端口。您可以将其更改为您想要的任何端口。
USER - 这指定 Memcached 运行的用户。
MAXCONN - 这指定 Memcached 可以处理的最大并发连接数。
CACHESIZE - 这指定 Memcached 可用于缓存数据的内存量。
选项- 这指定了 Memcached 的附加选项。在此示例中,我们将其设置为仅在本地主机上侦听。
保存更改并退出 Nano 文本编辑器。
第 4 步:测试 Memcached
安装并配置 Memcached 后,您可以对其进行测试以确保其正常工作。您可以通过使用 telnet 命令连接到 Memcached 并设置和检索值来完成此操作。
telnet 127.0.0.1 11211
set mykey 0 60 5
hello
get mykey
这将连接到端口 11211 上的 Memcached,并将 mykey 键的值设置为 hello,TTL 为 60 秒。然后,它检索 mykey 键的值。
如果一切正常,您应该看到以下输出 -
STORED
VALUE mykey 0 5
hello
END
这意味着 Memcached 能够存储和检索 mykey 键的值。
第 5 步:安装 PHP 的 Memcached 扩展
如果您的网站或应用程序使用 PHP,则可以安装 PHP 的 Memcached 扩展,以便从 PHP 代码轻松与 Memcached 交互。
您可以通过运行以下命令来做到这一点 -
sudo dnf install php-memcached
这将下载并安装 PHP 的 Memcached 扩展。
第 6 步:配置 PHP 的 Memcached 扩展
安装 PHP 的 Memcached 扩展后,您需要将其配置为连接到 Memcached。
您可以通过修改 PHP 配置目录中的 memcached.ini 文件来完成此操作。您可以通过运行以下命令找到该目录 -
php --ini
这将显示 PHP 配置目录的位置。导航到该目录并编辑 memcached.ini 文件 -
sudo nano /etc/php.d/40-memcached.ini
在 memcached.ini 文件中,您需要添加以下行 -
extension=memcached.so
此行启用 PHP 的 Memcached 扩展。
保存更改并退出 Nano 文本编辑器。
第 7 步:测试 PHP 的 Memcached 扩展
安装并配置 PHP 的 Memcached 扩展后,您可以对其进行测试以确保其正常工作。
您可以通过使用以下代码创建 PHP 文件来做到这一点 -
<?php
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);
$memcached->set('mykey', 'hello', 60);
echo $memcached->get('mykey');
?>
此代码创建 Memcached 类的新实例,通过端口 11211 连接到本地主机上的 Memcached,将 mykey 键的值设置为 hello,TTL 为 60 秒,然后检索 mykey 键的值。
如果一切正常,当您运行 PHP 文件时,您应该会看到以下输出 -
hello
这意味着 PHP 的 Memcached 扩展能够存储和检索 mykey 键的值。
将 Memcached 与负载均衡器结合使用
如果您有多个 Web 服务器为您的网站或应用程序提供服务,则可以使用负载均衡器在服务器之间分配传入请求。通过将 Memcached 与负载均衡器结合使用,您可以确保所有服务器都可以访问相同的缓存数据。
为此,您需要将 Memcached 配置为使用一致的哈希算法。这将确保始终从同一 Memcached 服务器存储和检索相同的密钥。您可以通过修改 Memcached 配置文件中的 OPTIONS 行来做到这一点 -
OPTIONS="-l 127.0.0.1 -o hash_algorithm=jenkins -o hash_mem_multiplier=1.1"
在此示例中,我们使用 jenkins 哈希算法并将 hash_mem_multiplier 选项设置为 1.1,这会增加可用于缓存数据的内存量。
监控 Memcached
为了确保 Memcached 平稳高效地运行,您应该定期对其进行监控。您可以使用memcached-tool或telnet等工具来检查Memcached的状态并查看缓存中的项目数和缓存命中率等统计信息。
例如,要检查 Memcached 的状态,您可以运行以下命令 -
sudo memcached-tool 127.0.0.1:11211 stats
这将显示 Memcached 的连接数、缓存命中率和内存使用情况等统计信息。
将 Memcached 与内容分发网络 (CDN) 结合使用
如果您有一个为全球受众提供服务的网站或应用程序,则可以使用内容分发网络 (CDN) 来提高网站的性能和可靠性。 CDN 将您的内容缓存在位于世界各地的服务器上,从而减少 Web 服务器上的延迟和负载。
您可以通过将 CDN 配置为在 Memcached 中缓存数据来将 Memcached 与 CDN 结合使用。这将使您的 CDN 能够快速从 Memcached 检索缓存的数据,从而减少 Web 服务器的负载。
使用 Memcached 进行数据库缓存
除了缓存 Web 应用程序的数据之外,您还可以使用 Memcached 缓存数据库查询。通过在 Memcached 中缓存常用查询,您可以减少数据库服务器的负载并提高应用程序的性能。
为此,您需要修改应用程序代码,以在进行数据库查询之前检查数据是否已缓存在 Memcached 中。如果数据已被缓存,您的应用程序可以从 Memcached 检索它,而不是进行新的查询。
使用具有 TTL 策略的 Memcached
使用 Memcached 时,制定缓存数据的生存时间 (TTL) 策略非常重要。 TTL 指定数据在被逐出之前应在缓存中保留多长时间。
如果将 TTL 设置得太低,数据可能会在重新使用之前从缓存中被逐出,这可能会导致应用程序速度变慢。如果将 TTL 设置得太高,数据可能会变得陈旧和过时,这也会导致问题。
设置 TTL 的一个好策略是根据数据访问的频率来设置它。对于经常访问的数据,可以设置较短的TTL,以保证数据始终是新鲜的。对于访问频率较低的数据,可以设置较长的 TTL,以减少缓存的负载。
结论
在本文中,我们指导您完成在 CentOS 8 上安装和配置 Memcached 的过程。我们还向您展示了如何安装 PHP 的 Memcached 扩展以及如何配置它以连接到 Memcached。通过使用 Memcached,您可以通过减少所需的数据库查询数量来显着提高网站或应用程序的性能。