SlideShare una empresa de Scribd logo
1 de 17
Scaling PHP
Trần Khánh Nam
Người thuyết trình
- Trần Khánh Nam
- 3 năm kinh nghiệm làm việc với các dự án
PHP
- Từng tham gia 2 startup và hiện đang làm
việc tại Lazada
Nội dung
● Sử dụng load balancer
● Tăng tốc máy chủ của bạn
● Data cache
● Queue
● Lời kết
Sử dụng load balancer
● Chuyển hướng request đến các server của
bạn một cách đồng đều
● Giúp website có chịu được nhiều lượng truy
cập hơn và bạn có thể nâng cấp
performance của website bằng cách thêm
vào máy chủ vào hệ thống
● HAProxy là load balancer phổ biến nhất.
Demo load balancer
● Load balancer ở địa chỉ localhost:1000
● App server nằm ở địa chỉ localhost:1001 và
localhost:1002
● Truy cập vào load balancer, request sẽ
được chuyển hướng tới app server và phản
hồi về địa chỉ của nó và port.
Demo haproxy
Tăng tốc máy chủ website của bạn
● Sử dụng Linux
● Sử dụng phiên bản PHP mới nhất
● Loại bỏ apache và thay bằng nginx
● Sử dụng opcode cache cho PHP
Loại bỏ apache và thay bằng nginx
- Nginx xử lý nhanh và tiết kiệm tài nguyên hơn
apache
Sử dụng opcode cache cho PHP
● Code PHP của bạn sẽ được biên dịch thành
opcode trước khi thực thi
● Việc lưu lại lại opcode sẽ tiết kiệm thời gian
biên dịch ở các request sau
● Các opcode cache thông dụng như APC,
Zend Opcache, xCache
Data cache
Example:
$report = $redis->get('my-report');
if($report != null){
$report = get_your_report();
$redis->set('my-report',$report);
}
$pdf->render($report);
Data cache
Các chương trình datacache:
- APC
- Memcached
- Redis
Queue
● Nơi nhận các công việc không cần xử lý
ngay lập tức ( gửi email, post ảnh lên
Facebook....)
● Xử lý các tác vụ đó một cách ngầm bên
trong server của bạn.
● Các queue phổ biến như rabbitmq,
gearman, php-resque, beantalk
Queue
Demo website upload ảnh.
- Cho phép người dùng upload ảnh lên website
- Sau khi ảnh được upload xong sẽ hiện trang
thông tin hình ảnh ngay lập tức
- Việc resize ảnh là upload ảnh lên amazon S3
được thực hiện bằng 1 job queue.
Kết luận
● Tập trung tối ưu kiến trúc website của bạn
thay vì tối ưu các đoạn code của bạn.
● Open mind - luôn tìm kiếm và học hỏi các
công nghệ mới để website của bạn chạy
nhanh hơn
Trần Khánh Nam
nam.trankhanh.vn@gmail.com

Más contenido relacionado

La actualidad más candente

Lab 3 phân loại dùng nbar
Lab 3 phân loại dùng nbarLab 3 phân loại dùng nbar
Lab 3 phân loại dùng nbarVNG
 
Cấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phútCấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phútTechMaster Vietnam
 
Lab 2 phân loại dùng mô hình mqc
Lab 2 phân loại dùng mô hình mqcLab 2 phân loại dùng mô hình mqc
Lab 2 phân loại dùng mô hình mqcVNG
 
19 web server
19  web server19  web server
19 web serverCơn Gió
 
Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and AuthorizationTechMaster Vietnam
 

La actualidad más candente (6)

Apache http server
Apache http serverApache http server
Apache http server
 
Lab 3 phân loại dùng nbar
Lab 3 phân loại dùng nbarLab 3 phân loại dùng nbar
Lab 3 phân loại dùng nbar
 
Cấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phútCấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phút
 
Lab 2 phân loại dùng mô hình mqc
Lab 2 phân loại dùng mô hình mqcLab 2 phân loại dùng mô hình mqc
Lab 2 phân loại dùng mô hình mqc
 
19 web server
19  web server19  web server
19 web server
 
Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and Authorization
 

Destacado

PHP Performance with APC + Memcached
PHP Performance with APC + MemcachedPHP Performance with APC + Memcached
PHP Performance with APC + MemcachedFord AntiTrust
 
Tối ưu hóa việc ghi dữ liệu với Gearman
Tối ưu hóa việc ghi dữ liệu với GearmanTối ưu hóa việc ghi dữ liệu với Gearman
Tối ưu hóa việc ghi dữ liệu với GearmanMinh Nguyen Vo Cao
 
Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)
Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)
Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)James Titcumb
 
Gearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applicationsGearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applicationsTeamskunkworks
 
Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...
Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...
Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...ScaleBase
 
Gearman, Supervisor and PHP - Job Management with Sanity!
Gearman, Supervisor and PHP - Job Management with Sanity!Gearman, Supervisor and PHP - Job Management with Sanity!
Gearman, Supervisor and PHP - Job Management with Sanity!Abu Ashraf Masnun
 
Scale like a pro with Gearman
Scale like a pro with GearmanScale like a pro with Gearman
Scale like a pro with GearmanAmal Raghav
 
Distributed RDBMS: Challenges, Solutions & Trade-offs
Distributed RDBMS: Challenges, Solutions & Trade-offsDistributed RDBMS: Challenges, Solutions & Trade-offs
Distributed RDBMS: Challenges, Solutions & Trade-offsAhmed Magdy Ezzeldin, MSc.
 
Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014
Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014
Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014Minh Nguyen Vo Cao
 
3 lesiones deportivas
3 lesiones deportivas3 lesiones deportivas
3 lesiones deportivasangelamaria99
 
Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002eaiti
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtableeaiti
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000eaiti
 
Evaluation Part 1
Evaluation Part 1Evaluation Part 1
Evaluation Part 1SophieB23
 
Cc1 cancer derma
Cc1 cancer dermaCc1 cancer derma
Cc1 cancer dermaAhmed Amer
 

Destacado (20)

PHP Performance with APC + Memcached
PHP Performance with APC + MemcachedPHP Performance with APC + Memcached
PHP Performance with APC + Memcached
 
Tối ưu hóa việc ghi dữ liệu với Gearman
Tối ưu hóa việc ghi dữ liệu với GearmanTối ưu hóa việc ghi dữ liệu với Gearman
Tối ưu hóa việc ghi dữ liệu với Gearman
 
Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)
Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)
Low Latency Logging with RabbitMQ (PHP London - 4th Sep 2014)
 
Gearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applicationsGearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applications
 
Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...
Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...
Distributed RDBMS: Data Distribution Policy: Part 1 - What is a Data Distribu...
 
Gearman, Supervisor and PHP - Job Management with Sanity!
Gearman, Supervisor and PHP - Job Management with Sanity!Gearman, Supervisor and PHP - Job Management with Sanity!
Gearman, Supervisor and PHP - Job Management with Sanity!
 
Scale like a pro with Gearman
Scale like a pro with GearmanScale like a pro with Gearman
Scale like a pro with Gearman
 
Distributed RDBMS: Challenges, Solutions & Trade-offs
Distributed RDBMS: Challenges, Solutions & Trade-offsDistributed RDBMS: Challenges, Solutions & Trade-offs
Distributed RDBMS: Challenges, Solutions & Trade-offs
 
Gearman for MySQL
Gearman for MySQLGearman for MySQL
Gearman for MySQL
 
Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014
Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014
Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014
 
3 lesiones deportivas
3 lesiones deportivas3 lesiones deportivas
3 lesiones deportivas
 
Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtable
 
Ford
FordFord
Ford
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000
 
Påske - Krim
Påske - KrimPåske - Krim
Påske - Krim
 
Manisha Garg_Resume modified
Manisha Garg_Resume modifiedManisha Garg_Resume modified
Manisha Garg_Resume modified
 
Evaluation Part 1
Evaluation Part 1Evaluation Part 1
Evaluation Part 1
 
Cc1 cancer derma
Cc1 cancer dermaCc1 cancer derma
Cc1 cancer derma
 
Nagaraj
NagarajNagaraj
Nagaraj
 

Similar a Scaling php

Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfHuyVnh4
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngTHPT Ngô Quyền
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHPNIIT - ICT Hà Nội
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requests
[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requests[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requests
[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requestsTuyển Nguyễn
 
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVERGIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVERPMC WEB
 
Tìm nền tảng lập trình cho 5 năm tới
Tìm nền tảng lập trình cho 5 năm tớiTìm nền tảng lập trình cho 5 năm tới
Tìm nền tảng lập trình cho 5 năm tớiTechMaster Vietnam
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4Trần Nam
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4Trần Nam
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajaxtraitimvohon
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajaxKim Hyun Hai
 
Hướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPHướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPNguyễn Tuấn Quỳnh
 

Similar a Scaling php (20)

03 udpt php
03 udpt   php03 udpt   php
03 udpt php
 
Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdf
 
07 web course 1 php co ban
07 web course   1 php co ban07 web course   1 php co ban
07 web course 1 php co ban
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web động
 
Lesson 1 practice
Lesson 1 practiceLesson 1 practice
Lesson 1 practice
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Node.js căn bản
Node.js căn bảnNode.js căn bản
Node.js căn bản
 
[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requests
[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requests[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requests
[Relipa Software] Giới thiệu về AWS - Áp dụng xây dựng website 1M requests
 
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVERGIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
 
Tìm nền tảng lập trình cho 5 năm tới
Tìm nền tảng lập trình cho 5 năm tớiTìm nền tảng lập trình cho 5 năm tới
Tìm nền tảng lập trình cho 5 năm tới
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
 
Dsd05 02a-xml-rpca
Dsd05 02a-xml-rpcaDsd05 02a-xml-rpca
Dsd05 02a-xml-rpca
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajax
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajax
 
Hướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPHướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHP
 
Ung dun web chuong 2
Ung dun web  chuong 2Ung dun web  chuong 2
Ung dun web chuong 2
 

Scaling php

  • 2. Người thuyết trình - Trần Khánh Nam - 3 năm kinh nghiệm làm việc với các dự án PHP - Từng tham gia 2 startup và hiện đang làm việc tại Lazada
  • 3. Nội dung ● Sử dụng load balancer ● Tăng tốc máy chủ của bạn ● Data cache ● Queue ● Lời kết
  • 4. Sử dụng load balancer ● Chuyển hướng request đến các server của bạn một cách đồng đều ● Giúp website có chịu được nhiều lượng truy cập hơn và bạn có thể nâng cấp performance của website bằng cách thêm vào máy chủ vào hệ thống ● HAProxy là load balancer phổ biến nhất.
  • 5.
  • 6. Demo load balancer ● Load balancer ở địa chỉ localhost:1000 ● App server nằm ở địa chỉ localhost:1001 và localhost:1002 ● Truy cập vào load balancer, request sẽ được chuyển hướng tới app server và phản hồi về địa chỉ của nó và port.
  • 8. Tăng tốc máy chủ website của bạn ● Sử dụng Linux ● Sử dụng phiên bản PHP mới nhất ● Loại bỏ apache và thay bằng nginx ● Sử dụng opcode cache cho PHP
  • 9.
  • 10. Loại bỏ apache và thay bằng nginx - Nginx xử lý nhanh và tiết kiệm tài nguyên hơn apache
  • 11. Sử dụng opcode cache cho PHP ● Code PHP của bạn sẽ được biên dịch thành opcode trước khi thực thi ● Việc lưu lại lại opcode sẽ tiết kiệm thời gian biên dịch ở các request sau ● Các opcode cache thông dụng như APC, Zend Opcache, xCache
  • 12. Data cache Example: $report = $redis->get('my-report'); if($report != null){ $report = get_your_report(); $redis->set('my-report',$report); } $pdf->render($report);
  • 13. Data cache Các chương trình datacache: - APC - Memcached - Redis
  • 14. Queue ● Nơi nhận các công việc không cần xử lý ngay lập tức ( gửi email, post ảnh lên Facebook....) ● Xử lý các tác vụ đó một cách ngầm bên trong server của bạn. ● Các queue phổ biến như rabbitmq, gearman, php-resque, beantalk
  • 15. Queue Demo website upload ảnh. - Cho phép người dùng upload ảnh lên website - Sau khi ảnh được upload xong sẽ hiện trang thông tin hình ảnh ngay lập tức - Việc resize ảnh là upload ảnh lên amazon S3 được thực hiện bằng 1 job queue.
  • 16. Kết luận ● Tập trung tối ưu kiến trúc website của bạn thay vì tối ưu các đoạn code của bạn. ● Open mind - luôn tìm kiếm và học hỏi các công nghệ mới để website của bạn chạy nhanh hơn

Notas del editor

  1. chào mọi người php là một ngôn ngữ script rất nổi tiếng bởi dễ sử dụng php thường dùng để viết cho ác website nhỏ tuy nhiên php vẫn có thể sử dụng để viết cho các website lớn như facebook, flickr, wikipedia. chỉ cần bạn biết cách sử dụng một cách hợp lý, và biết cash tối ưu kiến trúc cho các website php thì php hoàn toàn có thể scale để đáp ứng nhu cầu cho hàng triệu người.
  2. Về bản thân mình, mình tên là trần khánh nam Toàn bộ website lazada được viết bằng php
  3. Việc đầu tiên bạn cần làm khi muốn scale một website là sử dụng 1 load balancer. Load balancer là gì ? Load balancer là trung tâm của hệ thống của bạn, nó nhận các request và phân phối một cách đồng đều các request này đến các server của bạn - nơi các đoạn code php của bạn sẽ được thực thi. Càng nhiều server đặt dưới sự quản lý của load balancer thì hệ thống của bạn sẽ xử lý được càng nhiều request HAProxy là giải pháp load balancer hiệu quả và mạnh mẽ nhất, haproxy được viết bằng C và có khả năng xử lý tới 100.000 request mỗi giây.
  4. HAProxy đã được cài đặt ngay trên máy của mình. Mình sẽ viết 1 script để gửi request về địa chỉ localhost:1000 Và kết quả là bạn sẽ thấy là lần lượt 2 app server do nhận được điều hướng từ haproxy nên sẽ trả về phản hồi.
  5. Sau đây thì mình sẽ trình bày về việc tăng tốc máy chủ nơi chứa website, nơi nhận request từ người dùng và thực thi các đoạn code PHP của bạn. Đây là nơi dễ tối ưu hóa nhất bởi bạn chỉ cần cài đặt đúng phiên bản phần mềm
  6. Ngôn ngữ PHP vốn là mang tiếng chậm tuy nhiên các phiên bản gần đây cho thấy PHP đã được cải tiến rất nhiều. Nếu bạn vẫn đang sử dụng PHP 5.3 thì bạn nên cân nhắc để sử dụng phiên bản 5.4 hoặc 5.5. Benchmark cho thấy phiên bản 5.4 đã giảm gần như 1 nửa lượng bộ nhớ tiêu thụ và tăng số request / trên mỗi giây.
  7. Bất cứ ai học php cũng sẽ đều nghe đến LAMP stack, và đó là Linux, Apache, Mysql và PHP. Rất tiếc là trong các công nghệ kể trên thì Apache không đáp ứng được yêu cầu, sự ra đời của nginx đã mang đến cho công đồng PHP một webserver tốt hơn nhiều Tại sao lại nhanh và tiết kiệm hơn ?
  8. Tại sao lại cần sử dụng opcache: Thật ra đoạn code của bạn khi đưoc server đọc sẽ không được thực thi ngay mà nó phải được qua quá trình biên dịch thành một dạng gọi là opcache. Điều này cũng giống như các ngôn ngữ khác như java và .NET. Khi ở dạng opcode thì trình thông dịch PHP mới có thể đọc và thực thi đoạn code của bạn. Quá trình biên dịch này tốn khá nhiều thời gian. Để tiết kiệm thời gian biên dịch này thì ta có các chương trình như APC, Zend Opcache, xcache. Chỉ đơn giản là cài đặt 1 trong số các chương trình này thì đã có thể tăng tốc website của bạn lên từ 200 đến 300% mà không cần phải cấu hình gì thêm.
  9. Nếu bạn chưa biết thì mình giới thiệu qua về data cache Lấy dữ liệu từ database luôn luôn là nút thắt lớn nhất đối với bất kỳ ứng dụng nào. Việc lưu dữ liệu vào một data cache như memcached hoặc redis là cách để tiết kiệm request tới database một cách hiệu quả nhất. Lần sau nếu người dùng cần đến lấy dữ liệu đó lần nữa bạn chỉ việc lấy ra từ cache mà không cần phải chạy lại hàm để lấy dữ liệu cho report một lần nữa. Dữ liệu trong cache được lưu trữ ở RAM của server do vậy có tốc độ cực kỳ nhanh. Các chương trình data cache như là APC, Memcached, và Redis. Mình không đề cập đến APC bởi nó chỉ cache dữ liệu ở trong php process và không chia sẽ được với các php process khác trên cùng 1 server. Còn lại 2 cái nổi tiếng là memcached và redis. ta nhắc đến 2 memcached là bộ data cache lâu đời nhất và được sử dụng tại facebook, twitter.... memcached có điểm yếu là mỗi khi server cache bị ngừng hoạt động thì bạn mất hết mọi dữ liệu.
  10. Các chương trình data cache như là APC, Memcached, và Redis. APC thì là bộ cache nhanh nhất bởi vì nó lưu trữ cache data cùng với các process của php, và do vậy nó không thể chia sẽ dữ liệu được với các process khác. 2 process php khác nhau trên cùng 1 máy chủ cũng không thể lấy được data của nhau. Ngoài ra dữ liệu được lưu vào apc sẽ bị mất nếu server ngừng hoạt động. memcached là bộ data cache có khả năng phân tán lâu đời nhất và được sử dụng tại facebook, twitter.... tức là website của bạn nằm ở 1 máy chủ khác vẫn có thể truy tới server memcache và lấy dữ liệu. memcached có điểm yếu là mỗi khi server cache bị ngừng hoạt động thì bạn mất hết mọi dữ liệu. Redis là bộ cache mới nhất và cũng tương tự như memcached, tuy nhiên Redis hỗ trợ nhiều loại dữ liêu hơn gồm: keyvalue, list, set, sorted set. Dữ liệu của Redis được lưu đồng thời vào ổ đĩa cứng và mỗi khi server bị khởi động lại nó sẽ tự động đưa đưa dữ liệu vào Ram.