Memcached là một hệ thống cache hoạt động bằng cách lưu tạm thông tin những dữ liệu bạn hay sử dụng vào bộ nhớ RAM. Do tốc độ đọc ghi của bộ nhớ bao giờ cũng cao hơn so với lưu trữ file nên việc sử dụng memcached giúp cho hệ thống của bạn tăng tốc lên một cách đáng kể.

Mô hình hoạt động của Memcached:

memcached-architecture

Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt Memcached trên CentOS 7/6/5.

Cài đặt Memcached

– Cài đặt Remi repository với CentOS 5 (CentOS 7 và 6 không cần bước này)

## Remi Dependency on CentOS 5
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

– Cài đặt Memcached package

## CentOS 7 and 6
yum install memcached

## CentOS 5
yum --enablerepo=remi install memcached

Bạn cần lưu ý là có 2 memcache package tồn tại là memcache và memcached (có thêm chữ d ở cuối) cũng như có 2 phiên bản PHP Extention Module tương ứng là php-pecl-memcache và php-pecl-memcached. Chúng ta sẽ sử dụng phiên bản thứ 2 (có chữ d) vì nó ổn định và hỗ trợ nhiều chức năng hơn.

Cấu hình Memcached

Thông số quan trọng nhất bạn cần lưu ý đó là CACHESIZE, đơn vị tính là MB. Ví dụ như bên dưới mình sử dụng 128MB để cache (mặc định 64MB)

# nano /etc/sysconfig/memcached

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="128"
OPTIONS=""

Khởi động Memcached

chkconfig memcached on
service memcached start

Kiểm tra xem Memcached có hoạt động hay không

memcached-tool 127.0.0.1:11211 stats

#127.0.0.1:11211 Field Value
accepting_conns 1
auth_cmds 0
auth_errors 0
bytes 0
bytes_read 14
bytes_written 768
cas_badval 0
cas_hits 0
cas_misses 0
cmd_flush 0
cmd_get 0
cmd_set 0
conn_yields 0
connection_structures 11
curr_connections 10
curr_items 0
decr_hits 0
decr_misses 0
delete_hits 0
delete_misses 0
evictions 0
get_hits 0
get_misses 0
incr_hits 0
incr_misses 0
limit_maxbytes 536870912
listen_disabled_num 0
pid 1232
pointer_size 64
rusage_system 0.000999
rusage_user 0.000000
threads 4
time 1402941264
total_connections 12
total_items 0
uptime 114
version 1.4.4

Chú ý thông số uptime phía cuối, như vậy là memcached đã sẵn sàng hoạt động rồi.

Ngoài ra các bạn có thể sử dụng phpMemcachedAdmin để xem ngay trên trình duyệt. PHPMemcachedAdmin chỉ cần tải về là có thể sử dụng, các bạn nên cài đặt trong quản lý của HocVPS để bảo mật. Cụ thể, mình sẽ cài đặt trong thư mục /home/hocvps.com/private_html/:

# cd /home/hocvps.com/private_html/
# wget https://github.com/elijaa/phpmemcachedadmin/archive/1.3.0.tar.gz
# tar -xvzf 1.3.0.tar.gz
# chmod -R 777 phpmemcachedadmin-1.3.0/Temp/ 
# chmod -R 777 phpmemcachedadmin-1.3.0/Config/

Giờ bạn có thể truy cập PHPMemcachedAdmin qua domain:port/phpmemcachedadmin-1.3.0/
Lưu ý: Ở lần truy cập đầu tiên bạn sẽ thấy thông báo “Error : Configuration file or folder is missing, please fix this error and try again”. Bạn vào Editing Configuration rồi Save Live Configuration là xong.

Cài đặt Memcache và Memcached PHP Module trên CentOS

Để Memcached có thể hoạt động được với PHP, chúng ta cần cài đặt thêm PHP module.

PHP 5.5

yum --enablerepo=remi,remi-php55 install php-pecl-memcached php-pecl-memcache

PHP 5.6

yum --enablerepo=remi,remi-php56 install php-pecl-memcached php-pecl-memcache

PHP 7.0

yum --enablerepo=remi,remi-php70 install php-pecl-memcached php-pecl-memcache

Cuối cùng khởi động PHP và web server

service php-fpm restart
service nginx restart

Mở cổng Memcached (11211) trên Iptables Firewall

Trong trường hợp bạn sử dụng riêng một server Memcached thì cần phải mở port 11211 trên server cache.

Sử dụng lệnh sau

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT

Khởi động lại Iptables Firewall

service iptables restart

Cài đặt Memcached làm việc với WordPress

Để Memcached có thể hoạt động với WordPress bạn cần sử dụng plugin cache W3 Total Cache.

W3 Total Cache

Trong phần cài đặt plugin, hãy chọn page cache method là Memcached cho các module Page Cache, Database Cache và Object Cache là xong.

Giờ thì hãy tận hưởng tốc độ vù vù mà Memcache đem lại nhé.

Xóa Memcached

Nếu không dùng nữa và muốn xóa hoàn toàn Memcached khỏi server, bạn hãy chạy lệnh bên dưới:

yum remove memcached php-pecl-memcached php-pecl-memcache
service php-fpm restart
service nginx restart

Chúc các bạn thành công!

175 Comments

  1. Trung Tran 14 comment

    Cái này VPS Ram phải 1Gb trở lên mới dám sài nhở??
    Cho mình hỏi là cái này có khác gì & ưu điểm của nó như thế nào so với việc cài mod_pagespeed của google nhỉ??
    Mình đã cài mod_pagespeed rồi, không biết có nên cài thêm nữa hay ko?
    Thanks

  2. tinhbk 9 comment

    Mình đã cái APC cache + Mod_pagespeed (mình dùng servertut) không biết cài thêm cái này hiệu quả có tốt hơn hẳn không nhỉ? Trong trường này mình nên sử dụng những cái nào để đạt được kết quả tốt nhất hay dùng cả 3 cho VPS giá rẻ tại DO.
    Thanks !

    1. Luân Trần Admin

      Mình thấy Centmin Mod họ khuyến khích sử dụng Memcached + ngx_pagespeed ấy bạn

  3. Huy Tùng 2 comment

    Cho mình hỏi bắt buộc phải cài trên CentOS6 hả bạn, mình đang dùng CentOS5 có cài được không. VPS cần bao nhiêu RAM thì có thể chạy tốt dc Memcached vậy bạn. Cám ơn rất nhiều.

    1. Luân Trần Admin

      Mình viết bài này thực hiện trên CentOS 6, còn bản 5 thì mình chưa thử qua bạn ạ. Bạn cần khoảng 128 – 256MB RAM cho Memcached là ngon lắm rồi.

  4. tinhbk 1 comment

    Mình cài PHPMemcached bị lỗi này thì xử lý sao bạn nhỉ?

    [root@digivps1 ~]# yum –enablerepo=remi,remi-php55 install php-pecl-memcached
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirror.sov.uk.goscomb.net
    * epel: mirror.nus.edu.sg
    * extras: mirror.sov.uk.goscomb.net
    * remi: mirror.smartmedia.net.id
    * remi-php55: mirror.smartmedia.net.id
    * updates: mirror.as29550.net
    Setting up Install Process
    Resolving Dependencies
    …………..
    Error: Package: php-mysql-5.4.29-3.el6.remi.x86_64 (remi)
    Requires: php-pdo(x86-64) = 5.4.29-3.el6.remi
    Removing: php-pdo-5.4.27-1.el6.remi.x86_64 (@remi)
    php-pdo(x86-64) = 5.4.27-1.el6.remi
    Updated By: php-pdo-5.5.13-3.el6.remi.x86_64 (remi-php55)
    php-pdo(x86-64) = 5.5.13-3.el6.remi
    Available: php-pdo-5.3.3-26.el6.x86_64 (base)
    php-pdo(x86-64) = 5.3.3-26.el6
    Available: php-pdo-5.3.3-27.el6_5.x86_64 (updates)
    php-pdo(x86-64) = 5.3.3-27.el6_5
    Available: php-pdo-5.4.29-2.el6.remi.x86_64 (remi)
    php-pdo(x86-64) = 5.4.29-2.el6.remi
    Available: php-pdo-5.4.29-3.el6.remi.x86_64 (remi)
    php-pdo(x86-64) = 5.4.29-3.el6.remi
    Available: php-pdo-5.5.13-2.el6.remi.x86_64 (remi-php55)
    php-pdo(x86-64) = 5.5.13-2.el6.remi
    You could try using –skip-broken to work around the problem
    You could try running: rpm -Va –nofiles –nodigest
    [root@digivps1 ~]#

    1. Luân Trần Admin

      Hiện giờ bạn đang sử dụng PHP 5.4, trong khi lệnh kia tìm và cài đặt php-pecl-memcached cho PHP 5.5 với repo remi. Bạn hãy thử chạy lệnh yum update hoặc upgrade PHP xem như thế nào

  5. tinhbk 9 comment

    Mình đã sửa lại câu lệnh “yum –enablerepo=remi,remi-php54 install php-pecl-memcached” sang php54 và thấy cài đặt thành công. Tuy nhiên mình vào xem phpinfo thì không thấy php memcached, trong WP-FFPC báo lỗi
    “memcached cache backend activated but no PHP memcached extension was found.
    Please either use different backend or activate the module!”
    Cậu giúp mình với.
    Thanks cậu !

    1. Luân Trần Admin

      Bạn lưu ý plugin Memcached cài đặt hơi khác nhé, không phải activate lên sử dụng đâu

  6. Tung Anh Seo 1 comment

    nano /etc/sysconfig/memcached

    PORT=”11211″
    USER=”memcached”
    MAXCONN=”1024″
    CACHESIZE=”64″
    OPTIONS=””

    bạn hướng dẫn mình chỉnh lên 512 giống bạn với, RAM VPS của mình 4GB
    Cảm ơn

    l

  7. Thanh 14 comment

    1 – anh ơi cài cái này rồi còn cần cài thềm plugin W3 total cache hay super cache k ạ.

    2 – để sử dụng vps oki lâu dài. thì cài xong hocvps scripts rồi cần cài thêm gì nữa để tối ưu vps ạ. thanks anh

    1. Luân Trần Admin

      1. Bắt buộc phải cài plugin W3 total cache hoặc WP-FFPC thì mới sử dụng được Memcached. Super Cache không dùng được.
      2. Bạn cài HocVPS Script là đã được tối ưu để sử dụng lâu dài rồi.

      1. Thanh 14 comment

        dùng code php thì phải cấu hình thêm gì để sử dụng Memcached k ạ. e cài theo hết bài này rùi.
        caù xong hocvps scripts cần cài thêm gì để bảo mật và tối ưu nó ạ. thêm cache hay gì nữa ạ?

  8. Thanh 14 comment

    dùng code php thì phải cấu hình thêm gì để sử dụng Memcached k ạ. e cài theo hết bài này rùi.
    caù xong hocvps scripts cần cài thêm gì để bảo mật và tối ưu nó ạ. thêm cache hay gì nữa ạ?

    1. Luân Trần Admin

      Bạn chỉ cần cài 1 cái thôi, và nên dùng WP Total Cache. Mình đang dùng cái này. Mình đang định update bài viết khuyên mọi người dùng plugin này đây.

      1. Quốc Bảo 6 comment

        Chào Luân, mình gặp 1 vấn đề với WP Total Cache. Khi mình active, setting đầy đủ. Nếu mình vào 1 trang mà chưa được cache thì sẽ bị “Trang web này không tồn tại”, sau đó 0,5s nó sẽ tự load ra trang web. Còn nếu trang đã được cache thì vẫn vào được bình thường. Lỗi này xảy ra do W3 Total Cache vì khi mình deactive nó thì không bị nữa.

        Bạn có thể vào link này để check: http://vps.hues.vn/ra-mat-doi-thanh-nien-tinh-nguyen-so-cuu-tai-nan-giao-thong/

  9. Thanh 8 comment

    Mình kiểm tra Memcached hoạt động rồi nhưng khi cài W3 Total Cache thì phần Memcached lại bị mờ đi. Giúp mình với.

    Cảm ơn bạn!

  10. Hoàng Hạnh 8 comment

    Vps có nhiều ip và anh muốn chạy mỗi domain/1ip thì làm thế nào vậy Luân 🙂

    1. Luân Trần Admin

      Bạn add IP cho server như thông thường rồi trỏ domain đến IP đó là được ngay 😀

  11. dangtrandang 2 comment

    Đã làm giống như bác nhưng khi vào w3 total cache thì dòng memcached bị ẩn không check được có thể sup mình không!

    1. Luân Trần Admin

      Do bạn chưa thực hiện bước Cài đặt Memcached PHP Module trên CentOS 6

  12. Fretin Tang 5 comment

    Mình bị lỗi này: FTP credentials don’t allow to write to file /home/domain.com/public_html/nginx.conf

    Sửa nó ntn đây Luân?

  13. Dung 25 comment

    Bạn ơi cho mình hỏi mình đã cài memcache theo hướng dẫn trên của bạn đã kiểm tra cái uptime có thông số rồi nhưng sao vào cái W3 Total Cache nó ko cho phép chọn memcache. Mong bạn giúp đỡ

    1. Luân Trần Admin

      Bạn xem lại bước cuối Cài đặt Memcached PHP Module đã cài chuẩn chưa nhé?

      1. Dung 25 comment

        Cái bước Memcached PHP Module mình đã cài đi cài lại 2 3 lần rồi nhưng nó vẫn như vậy bạn à mình đang dùng bản hocvps 1.1

        1. Luân Trần Admin

          Bạn cho mình biết đang sử dụng phiên bản php nào, VPS ở đâu để mình check với

Comment của bạn

Your email address will not be published. Required fields are marked *