如何在CentOS 7上安装Memcached
Memcached是一个免费的开源高性能内存中键值数据存储。 它主要用作缓存系统,通过从数据库调用结果中缓存各种对象来加速应用程序。
在本教程中,我们将说明如何在CentOS 7上安装和配置Memcached。
先决条件
在继续本教程之前,请确保您以具有sudo特权的用户身份登录。
安装Memcached#
Memcached软件包包含在默认的CentOS 7存储库中。 安装非常简单,只需键入以下命令:
sudo yum install memcached libmemcached
的 libmemcached
软件包提供了一些命令行工具来管理Memcached服务器。
安装完成后,启动并启用Memcached服务:
sudo systemctl start memcached
sudo systemctl enable memcached
就是这样,此时,您已经在CentOS 7服务器上安装并运行了Memcached。
配置Memcached
可以通过编辑 /etc/sysconfig/memcached
文件。 默认情况下,Memcached设置为在所有接口上侦听。 在以下各节中,我们将向您展示如何为本地和远程访问配置服务。
如果配置不正确,则可以使用Memcached进行分布式拒绝服务(DDoS)攻击。
仅本地访问
如果连接到服务器的客户端也在同一主机上运行,建议将Memcached服务设置为仅侦听localhost。
为此,请打开 memcached
使用文本编辑器的配置文件:
sudo nano /etc/sysconfig/memcached
在里面 OPTIONS
参数添加 -l 127.0.0.1
。 这指示Memcached仅绑定到指定的接口。
/ etc / sysconfig / memcached
OPTIONS="-l 127.0.0.1"
重新启动Memcached服务,以使更改生效:
sudo systemctl restart memcached
远程访问 #
如果将连接到Memcached的应用程序托管在远程服务器上,则需要配置防火墙,并仅允许从客户端IP地址访问Memcached端口11211。
以下示例假定您要通过专用网络连接到Memcached服务器。 Memcached服务器IP为 192.168.100.20
客户端的IP地址是 192.168.100.30
。
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配置并将服务设置为侦听服务器的专用网络接口:
打开 memcached
配置文件:
sudo nano /etc/sysconfig/memcached
在里面 OPTIONS
参数添加服务器IP地址 -l 192.168.100.20
:
/ etc / sysconfig / memcached
OPTIONS="-l 192.168.100.20"
保存文件并重新启动Memcached服务:
sudo systemctl restart memcached
连接到Memcached
要连接到Memcached服务器,您需要使用特定于语言的客户端。
PHP#
要将Memcached用作PHP应用程序(如WordPress,Drupal或Magento)的缓存数据库,您需要安装 php-pecl-memcached
延期:
sudo yum install php-pecl-memcache
Python#
有几个Python库可与Memcache进行交互。 您可以使用pip安装首选库:
pip install pymemcache
pip install python-memcached
结论#
您已经了解了如何在CentOS 7服务器上安装Memcached。 有关此主题的更多信息,请参阅Memcached Wiki。
如果您有任何疑问或反馈,请在下面发表评论。
centos memcached