共計 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。