如何在CentOS 8上安装Memcached

时间:2020-03-05 15:30:15  来源:igfitidea点击:

Memcached是一个免费的开源高性能内存中键值数据存储。
通常,它用作缓存系统,通过从数据库调用结果中缓存各种对象来加速应用程序。

本文展示了如何在CentOS 8上安装和配置Memcached。

在CentOS上安装Memcached

Memcached软件包包含在默认的CentOS 8存储库中。
安装非常简单,请以root或者具有sudo特权的用户身份输入以下命令:

sudo dnf install memcached libmemcached

“ libmemcached”软件包提供了几个用于管理Memcached服务器的命令行工具。

安装完成后,通过键入以下内容启用并启动Memcached服务:

sudo systemctl enable memcached --now

要验证memcached是否正在运行,请键入:

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 2017-04-13 20:12:52 UTC; 2s ago
   ...

就是这样,我们已经在CentOS 8服务器上安装了Memcached,就可以开始使用它了。

配置Memcached

可以在“/etc/sysconfig/memcached”文件中配置Memcached选项。
默认情况下,Memcached设置为仅在本地主机上侦听。

如果连接到服务器的客户端也在同一主机上运行,则不应进行任何更改。

远程访问

如果将连接到Memcached的应用程序托管在远程服务器上,则需要配置防火墙,并仅允许从客户端IP地址访问Memcached端口“ 11211”。

如果配置不正确,则可以使用Memcached进行分布式拒绝服务(DDoS)攻击。

以下示例假定我们要通过专用网络连接到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仅绑定到指定的接口。

/etc/sysconfig/memcached

OPTIONS="-l 192.168.100.20"

保存文件并重新启动Memcached服务,以使更改生效:

sudo systemctl restart memcached

配置服务后,下一步是在防火墙中打开内存缓存端口。

CentOS带有防火墙配置工具“ FirewallD”。

下面的命令将创建一个名为“ memcached”的新区域,打开端口“ 11211”,并仅允许从客户端IP地址进行访问。

sudo firewall-cmd --new-zone=memcached --permanentsudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanentsudo firewall-cmd --reload

连接到Memcached

要连接到Memcached服务器,我们需要使用特定于语言的客户端。

的PHP

要将Memcached用作PHP应用程序(如WordPress,Drupal或者Magento)的缓存数据库,我们需要安装'php-pecl-memcached'扩展名:

sudo dnf install php-pecl-memcache

Python

有几个Python库可与memcached进行交互。

我们可以使用pip安装首选库:

pip install pymemcache
pip install python-memcached