memcache

Toàn tập sử dụng memcache trong PHP – cài đặt memcache

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

Gợi ý : Bạn là người mới và muốn tìm hiểu về Bitcoin nhưng không biết bắt đầu từ đâu? Click xem ngay Hướng Dẫn Đầu Tư Bitcoin Cho Người Mới nhé!

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

<?php
$memcache = new Memcache;
//2 tham số, tên host của bạn : localhost , port : 11211
$memcache->connect('localhost', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\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
<br/>\n";

$get_result = $memcache->get('key');
echo "Dữ liệu trong cache của bạn là:<br/>\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

 

 

Có ích

học laravel 5

Bài 17: Cache trong Laravel (Phần 2)

Trong bài trước mình đã giới thiệu cho các bạn khái niệm về cache và …

8 bình luận

  1. cám ơn bạn đã cung cấp kiến thức! 🙂

  2. cho mình hỏi sao nó lại báo không tìm thấy class “Memcache” (line 2) thế? class đó dc tạo lúc nào ? ở đâu vậy?

  3. Bạn có thể làm hướng dẫn cài Memcache trên Windows 7 64bit được không? mình cài rồi mà không cài được php_memcache.dll, máy bào call class Memcache not found

  4. Memcache là một giải pháp tốt trong vấn đề xử lý performance nhưng nên cẩn thận và không nên lạm dụng vì nó sẽ làm bộ nhớ RAM tăng, làm chậm xử lý. Và nó cũng là một con đường giúp hacker làm treo server của bạn. Cái gì cũng vậy, nên chọn lựa kỹ càng và không nên lạm dụng nó. Bài viết rất hay và tốt. Nên có thêm phần hướng dẫn configuration trên linux sẽ tốt hơn.

    • Thank Jenshan Nguyen đã góp ý, blog sẽ cố bổ sung thêm bài viết phân tích ưu nhược điểm của memcache, đồng thời sẽ cố gắng viết bài về cấu hình memcache trên linux, hi vọng Jenshan Nguyen sẽ tiếp tục đóng góp và có thể tham gia viết bài chia sẽ trên blog Kungfu PHP, giúp cho các bạn học hỏi thêm nhiều kinh nghiệm nữa 🙂

Trả lời anhchangmecongnghe Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *