Memcached 是一套開放源碼的分散式記憶體快取系統, 目前已經有多個網站使用。在網站的應用上, 由於資料庫的查詢多數是讀取, Memcached 先將資料庫加以緩存, 那便可以減少資料庫的讀取, 從而增加效率。Memcached 在 PHP 另一個常用的地方是用作緩存 session。下文會示範在 CentOS 7 安裝 Memcached 及 Memcached 的 PHP 模組。
1. 安裝 Memcached
在 RHEL 及 CentOS 十分簡單, 可以直接用 YUM 安裝:
2. 設定 Memcached
開啟 Memcached 的設定檔 /etc/sysconfig/memcached:
Memcached 預設會使用埠號 11211, 及使用 512MB 記憶體, 預設的內容如下:
1 2 3 4 5 |
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="512" OPTIONS="" |
以上的設定可以根據自己的需要修改, 例如我將埠號改為 1121, 使用 1GB 記憶體作為緩存空間, 可以這樣寫:
1 2 3 4 5 |
PORT="1121" USER="memcached" MAXCONN="1024" CACHESIZE="1024" OPTIONS="" |
儲存檔案後離開文字編輯器。
3. 啟動 Memcached
安裝好 Memcached 後, 啟動 Memcached 及設定開機自動啟動:
# systemctl start memcached
4. 開啟防火牆埠號
接著是將 Memcached 使用的埠號, 在防火牆開放對外連接, 上面是使用埠號 1211:
5. 安裝 Memcached 的 PHP 模組
然後用 YUM 安裝 Memcached 的 PHP 模組, PHP 才可以使用 Memcached 的緩存功能:
安裝後需要重新啟動網頁伺服器及 Memcached:
# systemctl restart httpd
要測試 PHP 是否有使用 Memcached 緩存, 可以在 DocumentRoot 目錄建立一個測試的 PHP 檔, 用 phpinfo() 查看, 以下會在 /var/www/html/ 目錄下建立 info.php 檔案:
加入以下內容:
1 2 3 |
<?php phpinfo(); ?> |
然後嘗試用瀏覽器存取 http://server_ip/info.php, 看到 PHP Info 的頁面後, 如果可以在頁面找到 “memcached” 的段落便表示安裝成功了。
This is use php_memcache extension to access memcached,
I think use php-pecl-memcached maybe better if you use remi-PHP 7.2.
(yum install php-pecl-memcached)