Hiện tại thì Memcached module hỗ trợ 2 Version và mỗi version này sẽ hỗ trợ cho các loại phiên bản PHP khác nhau như sau :
php-memcached 3.x: - Supports PHP 7.0 - 7.1. - Requires libmemcached 1.x or higher. - Optionally supports igbinary 2.0 or higher. - Optionally supports msgpack 2.0 or higher.
php-memcached 2.x: - Supports PHP 5.2 - 5.6. - Requires libmemcached 0.44 or higher. - Optionally supports igbinary 1.0 or higher. - Optionally supports msgpack 0.5 or higher.
Cho nên để hỗ trợ cho PHP 7 thì bạn phải cài Memcached 3 và ngược lại, điều kiện cần nữa là bạn phải có bộ thư viện cho Memcached là libmemcached.
Bài viết này sẽ hướng dẫn cài trên Memcached Version 3.
Bước 1: Download memcached module và libmemcached ở các link sau:
memcached download: https://pecl.php.net/package/memcached libmemcached download: https://launchpad.net/libmemcached/+download wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz wget https://pecl.php.net/get/memcached-3.0.4.tgz
Bước 2: Cài đặt Libmemcached
gunzip libmemcached-1.0.18.tar.gz tar -xvf libmemcached-1.0.18.tar cd libmemcached-1.0.18 ./configure make && make install
Bước 3: Cài đặt Memcached module
tar -xvzf memcached-3.0.4.tgz cd memcached-3.0.4 phpize ./configure make && make install
Sau khi cài đặt xong bạn sẽ thấy thông báo có đính kèm liên kết đến thư mục chưa file của memcached module dạng như sau:
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20160303/
Bước 4: Cấu hình cho PHP nhận cấu hình của memcached module
Các bạn sử dụng lệnh sau để tìm file php.ini
php -i | grep "php.ini"
Tiếp đến mở file php.ini ra và thêm vào cuối file đoạn chỉ thị sau:
extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20160303/memcached.so"
Lưu lại và khởi động lại apache bằng lệnh sau:
/etc/init.d/httpd restart
bây giờ bạn kiểm tra bằng cách dùng lệnh:
php -m | grep memcached
Bước 5: Cài tiếp memcached service
yum install memcached -y /etc/init.d/memcached start chkconfig memcached on
kiểm tra lại xem memcached service đã hoạt động hay chưa bằng lệnh sau:
netstat -nltp | grep 11211
Bước 6: Kiểm tra memcached có làm việc không
Cách 1:
<?php $mem = new Memcached(); $mem->addServer("127.0.0.1", 11211); $result = $mem->get("hello"); if ($result) { echo $result; } else { echo "Khong thay key. Toi se them vao ngay bay gio!"; $mem->set("hello", "Toi la data! toi da duoc luu trong memcached!") or die("Khong the luu den memcached..."); } ?>
Lưu lại và truy cập dạng domain/cache_test.php lần đầu sẽ không có cache và lần thứ 2 trở đi sẽ có cache, nếu nội dung từ lần 2 trở đi là “hello”, “Toi la data! toi da duoc luu trong memcached!” thì thành công roài đó.
Cách 2:
Các bạn sẽ sử dụng lệnh telnet để kiểm tra:
telnet localhost 11211 stats items
kết quả dạng như sau là các lưu key – value
STAT items:2:number 1 STAT items:2:age 106 STAT items:2:evicted 0 STAT items:2:evicted_nonzero 0 STAT items:2:evicted_time 0 STAT items:2:outofmemory 0 STAT items:2:tailrepairs 0 STAT items:2:reclaimed 0 STAT items:2:expired_unfetched 0 STAT items:2:evicted_unfetched 0
Xóa cache và thoát telnet bằng lệnh sau, truy cập lại trang, nếu các giá trị dạng key – value được ghi lại thì tức là memcached module đã làm việc cùng memcached service roài các bạn nhé.
flush_all quit
Như vậy là bài viết hướng dẫn compile memcached module xong rồi đó các bạn, hy vọng sẽ giúp ích các bạn ít nhiều trong việc lựa chọn các công cụ caching cho mã nguồn của mình.