Memcached 是一種高性能、開源的內存中鍵值緩存服務,在很多方面都很方便。首先,它通過緩存會話數據、用户身份驗證令牌和 API 調用來幫助加快應用程序的速度。此外,它還提供了一種有助於跨多個應用程序實例共享數據的機制。
那麼,使用 Memcached 有什麼好處呢?我們可以將其優點總結為兩個:提高應用程序性能和降低運行應用程序的成本,因為它是免費的。
本篇文章將向您展示如何在 RHEL 8 / CENTOS 8 中安裝 Memcached。
必備條件
- Minimal Installed RHEL 8 or CentOS 8 stream.
- A standard user with sudo or elevated privileges
(1) 安裝 Memcached Server
更新系統包列表
$ sudo dnf update -y
安裝 memcached
$ sudo dnf install -y memcached libmemcached
看到下面的輸出,表明安裝成功。
驗證 memcached 是否安裝成功
$ rpm -q memcached
memcached-1.5.9-2.el8.x86_64
$
有關 Memcached 的更詳細信息,請使用 -qi 參數,這將顯示更深入的信息,如 Memcached 版本、架構、安裝日期、構建日期等等。
$ rpm -qi memcached
(2) 配置 Memcached
memcached 默認配置文件為 /etc/sysconfig/memcached,默認情況下,它監聽在端口 11211 和 localhost 上聽,如在第 5 行上的 127.0.0.1 所示。
$ cat -n /etc/sysconfig/memcached
1 PORT="11211"
2 USER="memcached"
3 MAXCONN="1024"
4 CACHESIZE="64"
5 OPTIONS="-l 127.0.0.1,::1"
$
如果連接到 Memcached 的應用程序位於與 Memcached 相同的服務器上,請保持默認配置不變。
如果您在同一個 LAN 上的遠程系統上運行一個應用程序,並且希望它連接到 Memcached 服務器,請調整第 5 行,將 localhost 地址 127.0.0.1 替換為遠程系統的 IP 地址,示例如下:
$ sudo vi /etc/sysconfig/memcached
1 PORT="11211"
2 USER="memcached"
3 MAXCONN="1024"
4 CACHESIZE="64"
5 OPTIONS="-l 192.168.2.100,::1"
保存並退出配置文件
(3) 配置防火牆
此外,我們還需要在防火牆上放行 11211 端口,允許連接到 Memcached 服務器。
$ sudo firewall-cmd --add-port=11211/tcp --zone=public --permanent
$ sudo firewall-cmd --reload
(4) 啓動並啓用 Memcached 服務
完成所有配置後,啓動並啓用 Memcached 服務,如下所示
$ sudo systemctl start memcached
$ sudo systemctl enable memcached
驗證 Memcached 服務的狀態
$ sudo systemctl status memcached
Memcached 與 PHP 集成
如前所述,Memcached 可用於加速應用程序,您需要在服務器上安裝特定語言的客户機。例如,如果您正在運行一個 PHP 應用程序,如 WordPress、OwnCloud 或 Magento,請安裝 php-pecl-memcached 擴展。
php-pecl-memcached 擴展在默認的 CentOS 8 存儲庫中不可用,我們必須啓用 epel 和 remi 存儲庫
$ sudo dnf install epel-release -y
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
$ sudo dnf module enable php:remi-7.4 -y
$ sudo dnf install -y php-pecl-memcache php-pecl-memcached
開始測試,讓我們安裝一個 web 服務器和其他 PHP 依賴項
$ sudo dnf install -y nginx php php-cli
啓動 nginx,並創建一個測試頁面來驗證是否為 PHP 啓用了 Memcached
$ sudo systemctl enable nginx.service –now
$ sudo systemctl restart memcached.service
$ sudo vi /usr/share/nginx/html/info.php
將以下內容粘貼到文件中並保存更改
<?php
phpinfo();
?>
然後,打開瀏覽器,瀏覽地址:http://server-ip/info.php
向下滾動,尋找關於 Memcached 的部分。
Memcached 與 python 集成
對於 Python 應用程序,確保您安裝了 pymemcache 和 python-memcached 庫
$ pip3 install pymemcache --user
$ pip3 install python-memcached --user
我的開源項目
- course-tencent-cloud(酷瓜雲課堂 - gitee倉庫)
- course-tencent-cloud(酷瓜雲課堂 - github倉庫)