Hướng dẫn cài đặt Memcache trên Centos

25

Memcached là một hệ thống cache nổi tiếng tương tự như Redis nhưng dễ cài đặt và được nhiều plugin trên WordPress hỗ trợ hơn nên mình sẽ hướng dẫn các bạn cách cài đặt và sử dụng nó dễ dàng trên Centos.

Trong bài viết này mình sẽ hướng dẫn các bạn cách cài đặt cũng như tạo Memcached sử dụng cho nhiều website khác nhau.

Cài đặt Memcached

Để cài đặt Memcached bạn chỉ cần chạy lệnh sau.

yum install memcached

Cấu hình Memcached

Mặc định MemCached để cấu hình tối thiểu, tuy nhiên nếu bạn có một server khủng có dung lượng ram khủng thì nên chỉnh lại để tối đa hoá sức mạnh của Memcached.

Các thông tin cần chú ý là CACHESIZE, MAXCONN, OPTIONS trong đó:

  • CACHESIZE: là dung lượng Ram bạn có thể để dành cho Cache.
  • MAXCONN: Số lượng kết nối tối đa vào Memcached.
  • OPTIONS: Tuỳ chọn thêm, cấu hình. Tại đây bạn cần thêm   -l 127.0.0.1 -U 0  để bảo mật.

Để chỉnh sửa bạn chạy lệnh sau:

nano /etc/sysconfig/memcached

File cấu hình sẽ hiện ra như sau

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1 -U 0"

Chỉnh sửa những phần mình bôi đỏ cho phù hợp với cấu hình VPS của bạn.

Khởi động Memcached

Sau khi cấu hình hoàn tất bạn cần enable Memcached lên bằng những lệnh sau:

Khởi động Memcached trên Centos 6

chkconfig memcached on
service memcached start

Khởi động Memcached trên Centos 7

systemctl enable memcached
systemctl start memcached

Để kiểm tra xem Memcached có hoạt động chưa bạn có thể sử dụng lệnh sau:

ss -lnp | grep memcached

Nếu kết quả trả về như này là bạn đã cài đặt thành công Memcached

tcp LISTEN 0 128 127.0.0.1:11211 *:* users:(("memcached",pid=15517,fd=26))

Theo dõi quản lý Memcached trên HocVPS Script

À lại HocVPS Script huyền thoại, mình hay sử dụng HocVPS vì nó không mã hoá gì dễ dàng tuỳ biến nâng cấp theo ý mình, vì vậy mình sẽ tiếp tục hướng dẫn các bạn cách quản lý theo dõi Memcached trên HocVPS Script.

Chạy liên tiếp các lệnh sau:

cd /home/{domain chính cài đặt HOCVPS}/private_html/
wget https://github.com/elijaa/phpmemcachedadmin/archive/1.3.0.tar.gz
tar -xvzf 1.3.0.tar.gz
mv phpmemcachedadmin-1.3.0 memcached && chmod -R 777 memcached && chown -R nginx:nginx memcached
rm -f 1.3.0.tar.gz

Tiếp tục truy cập file   /home/hbh.vn/private_html/hocvps/templates/user/index.phtml   bằng lệnh sau:

nano /home/{domain chính cài đặt HOCVPS}/private_html/hocvps/templates/user/index.phtml

Thêm dòng này

<li>MemCached Management: <a href="<?php echo $admin_url; ?>/memcached/" target="_blank"><?php echo $admin_url; ?>/memcached</a></li>

Phía sau dòng

<li>PHP OPcache Management: <a href="<?php echo $admin_url; ?>/op.php" target="_blank"><?php echo $admin_url; ?>/op.php</a></li>

Lưu file lại truy cập vào HocVPS để xem kết quả, bạn có thể bấm vào link Memcached để xem mem đã hoạt động chưa.

Memcached trên HocVPS
Memcached trên HocVPS

Cài đặt Memcache và Memcached PHP Module

Để Memcached có thể hoạt động bạn cần cài đặt Memcache và Memcached PHP Module. Tuỳ theo phiên bản php đang chạy bạn chọn lệnh sau cho phù hợp, hoặc có thể thực hiện bước nâng cấp php 7.4 để có trải nghiệm tốt hơn.

Kiểm tra phiên bản php

php -v

Chọn lệnh cài đặt.

PHP 7.4

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

PHP 7.3

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

PHP 7.1

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

Khởi động lại PHP và Web Server

Trên Centos 6

service php-fpm restart
service nginx restart

Centos 7

systemctl restart php-fpm
systemctl restart nginx

Như vậy bạn đã cài đặt xong Memcache và có thể sử dụng các plugin như Swift Performance, WP Total Cache để sử dụng nhé.

Sử dụng Memcache cho nhiều website

Một vấn đề mình gặp phải khi sử dụng Memcache trên HocVPS Script nếu trên Server mình có 2 website A và B. Trong trường hợp website A bật Memcache lên trước sau đó website B cũng bật lên thì B sẽ lấy luôn cache của A làm cache cho mình nói cách dễ hiểu hơn là bạn vào website B nó sẽ ra website A nhưng không đổi URL :)), phải nói là trời đậu.

Mình có đi tìm hiểu có cách nào để tách ra không ví dụ như key phân biệt nhưng không có, và cách cuối cùng là mình tách Memcache ra riêng từng website, mình tạo hẳn 1 Memcache cho Website B.

Bắt đầu nhé, chạy lệnh sau:

nano /etc/sysconfig/memcached2

Copy phần nội dung sau paste vào, lưu ý rằng bạn cần chỉnh PORT khác với PORT các Memcache bạn đã tạo, ở đây mình chọn số 11212. Và đừng quên chỉnh MAXCONN, CACHESIZE phù hợp với site, với server của bạn nhé.

PORT="11212"
USER="memcached"
MAXCONN="2048"
CACHESIZE="512"
OPTIONS="-l 127.0.0.1"

Chạy tiếp lệnh sau

nano /etc/systemd/system/memcached2.service

Copy nội dung sau Paste vào

[Unit]
Description=Memcached2
Before=httpd.service
After=network.target

[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/memcached2
ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

[Install]
WantedBy=multi-user.target

Lưu file lại, chạy các lệnh sau để bật lên.

Trên Centos 6

chkconfig memcached2 on
service memcached2 start

Trên Centos 7

systemctl start memcached2.service
systemctl enable memcached2.service

Để kiểm tra xem 2 Memcache đã chạy chưa bạn chạy lệnh sau:

ss -lnp | grep memcached

Kết quả trả về như này là thành công rồi nhé

tcp LISTEN 0 128 127.0.0.1:11211 *:* users:(("memcached",pid=15517,fd=26))
tcp LISTEN 0 128 127.0.0.1:11212 *:* users:(("memcached",pid=15434,fd=26))

Để quản lý Memcached thứ 2 trong PHPMemcachedAdmin bạn truy cập vào chọn Edit Configuration

Chình Config Memcached
Chình Config Memcached

Thêm cấu hình như sau

Cấu hình Memcached
Cấu hình Memcached

Như vậy bạn đã có thể sử dụng Memcached rồi, bạn có thể sử dụng 2 memcached rồi nhé nhớ cấu hình trong config của plugin cache cho đúng port không lại xài trùng nhen ^^

Cảm ơn các bạn đã có thời gian ghé thăm ủng hộ blog xàm của mình 🙂

5/5 - (1 vote)
25 Comments
  1. WPFast says

    dùng DA thì không cần theo bài này anh nhỉ

    1. DiamondNgo says

      Tham khảo thôi, cài da a có hướng dẫn rồi đó + với FB a bị block rồi thấy tin nhắn của em mà không đọc được :))

  2. Lê Tuấn Vũ says

    Cái này có nhất thiết phải cài không ad ơi??

    1. DiamondNgo says

      Cần nhé bạn, tăng tốc độ website, tối ưu giảm tải cho CPU

  3. Phạm Hồng Vĩ says

    e thường xuyên bị full, mà đổi CACHESIZE=”64″ lên 256 không được. có 1 sv đổi được, 2 sv đổi mãi không dc

    1. DiamondNgo says

      em restart memcached khi cấu hình lại chưa

      1. Phạm Hồng Vĩ says

        dạ rồi a, kiểm tra thì thấy memcache cũng hoạt động rồi. vô kiểm tra lệnh nano thì thấy đã là đã sửa 256.. mà vô op.php vẫn là 128 @@

        1. DiamondNgo says

          Tại sao lại vô op ta?

          1. Phạm Hồng Vĩ says

            e vô domain:port/op xem chớ k có cài trình quản lý Memcached … mấy cái kia e thay đổi vô Op xem thấy có đổi á a.. mà sv này lại k dc

          2. DiamondNgo says

            Op chỉ xem opcache thôi, xem mem thì cài phpmemcache vào

  4. Minh says

    Mình bị lỗi này khi cài xong, giờ thì web mất cả section, ko lưu được cái gì cả. Bạn xem giúp lỗi ở link website. xem thông tin php của mình. https://monngon7.com/phpinfo.php

    1. DiamondNgo says

      Bạn disable plugin restropres nhé

  5. Nguyễn bảo says

    Chào admin. Mình đang sử dụng vps gói 6$ của vultr. Mình có cài vpssim và ram mình chỉ có 1gb. Hiện tại memcached của mình đang chỉnh là 256mb web online 400 người full cache rất nhanh. Vậy ram 1gb mình nâng lên 512mb cache được không. Hoặc nâng cấp vps lên gói 12$ để nhận 2gb ram.
    Nếu như mình sử dụng gói 2gb ram thic chỉnh thông số memcached bao nhiêu là phù họp. U

    1. DiamondNgo says

      Bạn cần cài PHP Memcached để quản lý xem nó xài hết bao nhiêu nhé.

      1. Bai says

        Mình có cài php memcached rồi. Nhưng không hiểu cái phần 1 ngày nó sử dụng bao nhiêu cache. Còn mình cài 256m thì nó full hết luôn.

        1. DiamondNgo says

          Chào Bai, bạn cho mình xem cấu hình memcached và dasdboash của PHPMemcached nhé

  6. *Trung says

    Cái chỗ “Sử dụng Memcache cho nhiều website” mình chưa từng gặp lỗi như bạn nói vậy theo bạn có nên làm theo bạn hướng dẫn để tách riêng nó ra không nhỉ?

    1. DiamondNgo says

      Có thể bạn chưa kết nối thành công cache website tới memcached nên vậy nhé, bạn cài đặt PHPmemcached để quản lý xem thực sự đã xài đến mem chưa

      1. *Trung says

        Nó báo như này này bạn. Mình chạy 5 web trên 1 VPS. Tại mới đổi nhà cung cấp VPS nên cài lại đọc được bài của bạn.
        https://prnt.sc/sfqqb0

        1. DiamondNgo says

          Sao thấy use ít vậy nhỉ :d

          1. *Trung says

            Trước dùng thằng DigitalOcean thấy nó dùng lần gần 1gb giờ chuyển sang thằng Upcloud thấy nó có vậy. :v Chẳng hiểu sao :v

          2. DiamondNgo says

            Bác cho mình xin link test speed của nó được không ????

          3. *Trung says

            Trong khi đó giờ thằng OP set cho nó gần nửa GB mà nó dùng hết 100%. Trước bên DigitalOcean set có 128mb nó dùng có 50%. G

          4. *Trung says

            Mình làm theo bài hướng dẫn tách memcached ra cho từng site. Mà khi kiểm tra cái số memcached2 nó chưa có site nào dùng. Trên plugin set chỗ nào bạn nhỉ :)? Cám ơn bạn!

          5. DiamondNgo says

            Thay đổi port nhé bạn, port mặc định trên plugin 11211 bạn đổi thành port mới

Leave A Reply

Your email address will not be published.