Tìm hiểu về XCache, APC, eAccelerator và Memcache

Hiện nay, trên thế giới nói chung và trong giới webmaster Việt Nam nói riêng, việc sử dụng các phần mở rộng Cache nhằm tăng tốc độ hoạt động của ứng dụng web đang nở rộ. Tuy nhiên để có thể vận dụng tốt các loại cache để hiệu suất hoạt động được cao nhất, thì chúng ta cùng phải tìm hiểu sâu hơn về các loại cache này, xem nó cache cái gì và nên dùng loại nào?

Ở trong bài viết này mình sẽ giải thích cho các bạn về các loại cache để giúp các bạn hiểu được cách vận hành và đưa ra lựa chọn phù hợp nhất cho trường hợp bài toán của mình để đạt hiệu quả cao nhất.

Tìm hiểu về các loại Cache

Tìm hiểu về các loại Cache

xCache, APC (Alternative PHP Cache), eAccelerator, truck-mmcache, phpa (PHP Accelerator)

Tất cả các loại trên thuộc cùng 1 dòng cache và nguyên lý hoạt động giống nhau. Mục đích của loại cache này là lưu trạng thái biên dịch từ mã PHP sang mã máy và lưu trạng thái biên dịch này vào RAM. Khi có yêu cầu tiếp theo, PHP Engine sẽ không đọc lại file PHP trên ổ cứng được yêu cầu và dịch chúng nữa mà sẽ lấy ngay mã máy đã được biên dịch được lưu trữ trong RAM trước đó và sử dụng luôn.

Từ cơ chế hoạt động như trên, ta thấy rằng việc xử lý các yêu cầu sẽ được thực hiện nhanh hơn, do một khâu xử lý đã được loại bỏ hoàn toàn sau lần chạy đầu tiên. Theo như quảng cáo của các phần mở rộng này, thì chúng có thể giúp quá trình biên dịch mã nhanh hơn gấp đến 5 lần, nghe có vẻ hấp dẫn phải không nào?

  • Vậy thì chúng ta nên sử dụng cái nào trong số những phần mở rộng trên?

Tất cả các phần mở rộng trên đều được cung cấp miễn phí. Tuy nhiên, qua đánh giá của cư dân mạng đã từng sử dụng qua thì APC, xCache và eAccelerator được đánh giá là tốt nhất. Trong đó riêng có APC được phát triển bởi chính đội ngũ phát triển PHP nên sẽ được cập nhất nhanh nhất cùng với các phiên bản PHP cũng như có sự tương thích, ổn định và dễ dàng cài đặt nhất.

Nhưng trong các đợt thử nghiệm thì eAccelerator cho thấy tốc độ nhanh nhất nhưng việc cài đặt và cập nhật khó khăn hơn so với 2 cái còn lại.

  • Vì vậy, nếu bạn muốn tốc độ nhanh nhất có thể ưu tiên lựa chọn theo thứ tự.

eAccelerator  > XCache > APC

  • Xếp theo cấp độ dễ cài đặt và cấu hình

APC > xCache > eAccelerator

  • Xếp theo độ ổn định và khả năng cập nhật mới nhanh chóng

APC > xCache > eAccelerator

Từ những so sánh trên, hy vọng bạn có thể tự quyết định được cho mình nên chọn cái nào phù hợp.

Nguyên lý hoạt động

php-life-circle-after-cache

Nguyên lý hoạt động của PHP Cache

Memcache (Memcached)

Memcached cũng là cache nhưng nó không giống như các bộ cache trên, nó là một service chạy độc lập tương tự như mysql, httpd, nginx. Memcached cung cấp cho bạn khả năng lưu trữ một đối tượng bất kỳ nào đó vào trong RAM.

Để PHP có thể hoạt động với memcached bạn cần cài một phần mở rộng để PHP có thể tác động vào memcached thông qua các function và class mà nó cung cấp. (Ví dụ: memcache.so và memcache.dll)

Như vậy, để có thể dùng được memcached bạn cần phải cài memcached servicememcache extension

Hiện nay hầu hết các mã nguồn mở và thương mại đều hỗ trợ memcache để tăng tốc hoạt động của ứng dụng. Ví dụ: vBulletin & Xenforo sẽ lưu các tùy chọn lên RAM, khi có người truy cập vào thì lấy ra từ RAM chứ không cần mất thời gian vào Database lấy ra nữa.

Lời kết

MemcachedxCache, eAccelerator, APC là 2 nhóm có công dụng khác nhau. Lời khuyên của mình là bạn có thể sử dụng cùng lúc 2 nhóm này (Nhưng ở cùng 1 nhóm thì chỉ nên sử dụng 1 cái). Ví dụ cài memcached và xCache      hoặc       memcached và APC

Khi các bạn đã hiểu được những điều trên thì việc đưa ra lựa chọn dùng chúng như thế nào sẽ chuẩn xác và đem lại hiệu quả hơn cho hệ thống của mình. Chúc các bạn có thêm kinh nghiệm bổ ích trong thế giới web.

Tham khảo: sinhvienit.net