如何在 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 可以用于缓存数据的内存量。
选项 (OPTIONS) - 指定 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 类的新的实例,连接到 localhost 端口 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 中检索它,而无需发出新的查询。
使用 Memcached 和 TTL 策略
使用 Memcached 时,制定缓存数据的生存时间 (TTL) 策略非常重要。TTL 指定数据在被逐出缓存之前应保留多长时间。
如果将 TTL 设置得太低,则数据可能会在可以重用之前被逐出缓存,这可能会导致应用程序速度变慢。如果将 TTL 设置得太高,则数据可能会变得陈旧和过时,这也会导致问题。
设置 TTL 的一个好策略是根据数据访问的频率来确定。对于频繁访问的数据,您可以设置较短的 TTL 以确保数据始终是最新的。对于不太频繁访问的数据,您可以设置较长的 TTL 以减少缓存的负载。
结论
在本文中,我们指导您完成了在 CentOS 8 上安装和配置 Memcached 的过程。我们还向您展示了如何安装 PHP 的 Memcached 扩展以及如何将其配置为连接到 Memcached。通过使用 Memcached,您可以通过减少所需的数据库查询次数来显著提高您的网站或应用程序的性能。