Hướng dẫn dùng memcache trong PHP

Mục lục

  • 1. Giới thiệu về memcache
  • 2. Cài đặt memcache
    • A. Cài đặt memcache trên xampp trong window
    • B. Cài đặt memcache trên ubuntu
  • 3. Sử dụng memcache trong PHP và MySQL

1. Giới thiệu về memcache

Các website hay web application ngày nay thường sử dụng rất nhiều dữ liệu. Trên một trang thường có các hàng chục, thậm chí hàng trăm kết nối truy vấn tới database. Chưa kể số lượng câu truy vấn tới database sẽ cấp số nhân lên theo số lượng khách viếng thăm trang. Đối với các bạn chưa có kinh nghiệm về việc xử lý, tối ưu trang web của mình thì việc nhận một thông báo lỗi trang web quá tải là chuyện thường thấy xảy ra. Về lâu dài, nếu tình trạng này liên tục xảy ra thì việc mất đi số lượng người viếng thăm trang web của bạn là điều không thể tránh khỏi.

Vậy làm thế nào để giải quyết vấn đề nan giải này và giúp cài thiện tốc độ website của bạn. Đó chính là việc sử dụng Memcache cho website của bạn. Memcache là một hệ thống lưu trữ dữ liệu trong bộ nhớ đệm với hiệu suất cực cao. Nói một cách khác Memcache là một ứng dụng chạy trên máy chủ, sử dụng một phần nhỏ của bộ nhớ có sẵn để lưu trữ các mảng dữ liệu kết hợp. Để sử dụng memcache, bạn đơn giản chỉ sử dụng 2 cách dưới đây :

  • Lưu trữ giá trị V với khóa K
  • Truy xuất giá trị V với khóa K

Nghe có vẻ thật đơn giản đúng không nào ? Nhưng chỉ với 2 cơ chế đơn giản này, bạn có thể làm được rất nhiều việc và đem lại một hiệu suất không đơn giản chút nào cho trang web của bạn.

2. Cài đặt memcache

A. Cài đặt memcache trên xampp trong window

Ở đây mình hướng dẫn các bạn cài memcache trong gói Xampp trên window, đối với Wamp các bạn có thể làm tương tự

a. Mở file php.ini ở trong thư mục C:/xampp/php/php.ini tìm dòng này

;extension=php_memcache.dll

đổi lại như sau

extension=php_memcache.dll

(nếu bạn không thể tìm thấy dòng trên trong php.ini thì hãy thêm nó vào)

b. Tiếp tục thêm đoạn bên dưới vào file php.ini ngay bên dưới dòng ở mục a.

[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211

c. Vào link sau http://downloads.php.net/pierre/php_memcache-2.2.6-5.3-vc9-x86.zip , để download extension memcache, giải nén ra bạn sẽ được file này php_memcache.dll, hãy đặt nó vào thư mục sau C:/xampp/php/ext/

d. Vào link sau để download gói cái đặt memcache http://code.jellycan.com/memcached/, giải nén bạn sẽ được file memcache.exe. Tiếp đến tạo một thư mục trong ổ C hoặc bất cứ đâu, đặt tên là memcached (ví dụ c:/memcached/)

e. Mở comand line trong window (bấm phím window, trong box Search program and file, gõ cmd và enter). Nhập dòng bên dưới để cài đặt memcache

c:\memcached\memcached.exe -d install

Nếu không có thông báo lỗi nào hiện ra nghĩa là bạn đã cài thành công

f. Gõ tiếp dòng bên dưới để khởi chạy memcache

c:\memcached\memcached.exe -d start, or net start “memcached Server”

g. Restart lại Xampp Apache

h. Kiểm tra memcache. Tạo một file php và đặt nó trong thư mục gốc của xampp, thêm đoạn code như bên dưới

connect('localhost', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."
\n"; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die ("Không thể lưu trữ data vào memcache"); echo "Dữ liệu của bạn đã được lưu trữ vào memcache thành công và sẽ hết hạn trong vòng 10 giây
\n"; $get_result = $memcache->get('key'); echo "Dữ liệu trong cache của bạn là:
\n"; var_dump($get_result); ?>

Xem kết quả hiển thị ra và rút ra kết luận cho riêng bạn nhé. Nếu bạn có bất kỳ thắc mắc nào thì để lại comment bên dưới nhé

B. Cài đặt memcache trên ubuntu

a. Để cài đặt memcache trên ubuntu, mở terminal (Ctrl + Alt + T) và gõ đoạn lệnh sau

sudo apt-get install memcached

b. Truy cập memcache từ PHP

Sau khi đã cài đặt memcache lên ubuntu, việc tiếp theo chúng ta cần làm đó là tích hợp memcache vào php để chúng ta có thể sử dụng memcache trong PHP. Do đó, chúng ta sẽ cài memcache extension, hỗ trợ việc giao tiếp giữa php và memcache vừa cài đặt. Để cài đặt memcache extension cho PHP, các bạn gõ đoạn lệnh như dưới đây:

sudo pecl install memcache

Vậy là xong, bạn có thể test memcache đã được cài đặt thành công trên ubuntu bằng cách làm tường tự như bước 2.A.h ở trên.

3. Sử dụng memcache trong PHP và MySQL

Trong phần này mình sẽ hướng dẫn các bạn chi tiết cách sử dụng memcache trong quá trình lấy dữ liệu từ MySQL lưu trữ vào memcache ở lần đầu truy vấn, sau đó lấy dữ liệu từ memcache cho những lần tiếp theo, giúp giảm thiểu kết nối trực tiếp đến db MySQL để lấy dữ liệu

Mời các bạn xem tiếp bài Áp dụng memcache trong PHP và MySQL

Nguồn : kungfuphp.com

Mình là Hiếu.
Người sáng lập ra blog Kungfu PHP chia sẻ mọi thứ về tiền điện tử, mmo, lập trình,…
Một câu nói mà mình rất thích đó là “Cuộc đời chỉ có một, vì thế hãy làm những gì khiến bạn hạnh phúc và ở bên người khiến bạn luôn mỉm cười”.
Hy vọng nơi đây là góc cafe nhỏ để chúng ta có thể trao đổi, cùng nhau phát triển.

►Nếu bạn thấy bài viết bạn đang đọc hữu ích, hãy mời mình một ly cafe nhé : https://kungfuphp.com/donate