共计 1863 个字符,预计需要花费 5 分钟才能阅读完成。
memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度,由 LiveJournal 的 Brad Fitzpatrick 开发,但被许多网站使用。
这是一套开放源代码软件,以 BSD license 授权发布。本文将会记录如何在 centos 8 上安装和配置 Memcached 的教程。
Memcached 软件包包含在默认的 CentOS 8 存储库中。安装非常简单,以 root 或具有 sudo 权限的用户身份输入以下命令:
sudo dnf install memcached libmemcached
安装完成后,通过键入以下内容启用并启动 Memcached 服务:
sudo systemctl enable memcached –now
然后我们去验证是否可以生效。
sudo systemctl status memcached
我们看到下面的输出内容表示已经安装好。
● memcached.service – memcached daemon
Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2020-04-13 20:12:52 UTC; 2s ago
…
就是这样,我们已经在你的 CentOS 8 服务器上安装了 Memcached,现在我们就可以开始使用它了。然后我们就要开始配置 Memcached。
Memcached 选项可以在 /etc/sysconfig/memcached 文件中配置。默认情况下,Memcached 设置为仅在 localhost 上监听中。如果连接到服务器的客户端也在同一台主机上运行,则不应进行任何更改。
如果将连接到 Memcached 的应用程序托管在远程服务器上,则您需要配置防火墙并仅允许从客户端 IP 地址访问 Memcached 端口 11211。
如果配置不当,Memcached 可用于执行分布式拒绝服务 (DDoS) 攻击。这个就是我们常见的有被攻击 11211 端口的问题,之前有一次安全问题导致很多人遭殃。
以下示例假设我们需要通过专用网络连接到 Memcached 服务器。Memcached 服务器 IP 为 192.168.100.20,客户端 IP 地址为 192.168.100.30。
第一步,我们需要编辑 Memcached 配置并将服务设置为侦听服务器的专用网络接口:
打开 memcached 配置文件:
sudo nano /etc/sysconfig/memcached
在 OPTIONS 参数中,添加服务器 IP 地址 -l 192.168.100.20。这指示 Memcached 仅绑定到指定的接口。
OPTIONS=”-l 192.168.100.20″
保存文件并重新启动 Memcached 服务以使更改生效。
sudo systemctl restart memcached
配置服务后,下一步是在防火墙中打开 memcached 端口。
CentOS 自带防火墙配置工具 FirewallD。下面的命令将创建一个名为 memcached 的新区域,打开端口 11211 并仅允许从客户端 IP 地址访问。
sudo firewall-cmd –new-zone=memcached –permanent
sudo firewall-cmd –zone=memcached –add-port=11211/udp –permanent
sudo firewall-cmd –zone=memcached –add-port=11211/tcp –permanent
sudo firewall-cmd –zone=memcached –add-source=192.168.100.30/32 –permanent
sudo firewall-cmd –reload
最后,我们需要连接 Memcached。
1、PHP
要将 Memcached 用作 PHP 应用程序 (例如 WordPress、Drupal 或 Magento) 的缓存数据库,您需要安装 php-pecl-memcached 扩展:
sudo dnf install php-pecl-memcache
2、Python
有几个 Python 库可用于与 memcached 交互。我们可以使用 pip 安装您喜欢的库:
pip install pymemcache
pip install python-memcached
这样,我们已经成功在 centos8 中部署 memcached。