Tối ưu Performance với Redis trong PHP

0:34 22/04/2024

Trong quá trình phát triển web, tối ưu hóa hiệu năng (performance) là một trong những yếu tố then chốt giúp website của bạn chạy mượt mà và phản hồi nhanh chóng. Một trong những công cụ phổ biến được sử dụng để tăng hiệu suất của ứng dụng web là Memcache, Redis.

Memcache và Redis là hai hệ thống lưu trữ dữ liệu cache, giúp giảm thiểu thời gian truy cập vào cơ sở dữ liệu và tăng tốc độ trả về dữ liệu. Cả hai đều là các giải pháp cache thông dụng trong ứng dụng PHP. Tuy nhiên, Redis thường được coi là một lựa chọn phổ biến hơn trong các dự án hiện đại, đặc biệt là khi cần sử dụng các tính năng phức tạp hơn ngoài việc chỉ lưu trữ và truy xuất dữ liệu cache đơn giản.

Cài đặt Redis Server với XAMPP và chạy ứng dụng

Cài đặt trên MacOS

  • Tiến hành cài Redis: vào thư mục chứa file redis-6.0.2.tgz và chạy lệnh sau: /Applications/XAMPP/xamppfiles/bin/pecl install redis-6.0.2.tgz
  • Sau khi cài đặt thành công thì tiến hành chạy Redis Server: redis-server

  • Kiểm tra xem Redis Server có chạy tốt bằng lệnh sau: redis-cli ping

Như vậy chúng ta đã có một Redis Server chạy tại local machine giúp việc lưu trữ cache để tăng tốc performance cho mọi website có sử dụng Redis.

Triển khai lập trình và chạy website sử dụng Redis Server

Tại Terminal:

  • Tạo thư mục dự án ‘redis’ trong thư mục `/Applications/XAMPP/xamppfiles/htdocs` với lệnh sau: mkdir redis
  • Sau đó, vào thư mục dự án ‘redis’ chạy lệnh sau để dùng Redis client  (PHP 7.2 và cao hơn)

composer require predis/predis

Tạo file redis.php với nội dung sau:

Ta tiến hành truy cập link http://localhost/redis/redis.php (chú ý: phải đảm bảo Redis Server đã chạy với lệnh redis-server) lúc này ứng dụng kiểm tra hệ thống đã lưu trữ data cho từ khóa `key` chưa. Nếu chưa, hệ thống sẽ tiến hành kết nối database, query để lấy dữ liệu và lưu trữ vào khoá `key` trong vòng 60 giây. 

  • Các lần sau, nếu truy cập vào link http://localhost/redis/redis.php hệ thống chỉ việc lấy data trong Redis và trả về cho người dùng nếu thời gian cache chưa hết hạn. Như vậy, việc dùng Redis sẽ giúp cải thiện hiệu năng (performance) của webite vì không cần phải truy vấn data trong cơ sở dữ liệu.

Sử dụng Redis Cloud và chạy ứng dụng

Sử dụng Redis Cloud

  • Tạo database miễn phí và click nút “Let’s start free”.

 

 

  • Click database name “Phuong-free-db” để xem host, post và mật khẩu. Cấu hình này sẽ được cấu hình trong file php để kết nối Redis Cloud.

Triển khai lập trình và chạy website sử dụng Redis Cloud

 

Tại Terminal:

  • Tạo thư mục dự án ‘redis’ trong thư mục `/Applications/XAMPP/xamppfiles/htdocs` với lệnh sau (bạn bỏ qua bước này nếu đã xem mục 2.2): mkdir redis
  • Sau đó, vào thư mục dự án ‘redis’ chạy lệnh sau để dùng Redis client  (PHP 7.2 và cao hơn) (bạn bỏ qua bước này nếu đã xem mục 2.2): composer require predis/predis

 

 

  • Tạo file redis_cloud.php với nội dung sau:

 

  • Ta tiến hành truy cập link http://localhost/redis/redis_cloud.php, lúc này ứng dụng kiểm tra hệ thống đã lưu trữ data cho từ khóa `key` chưa. Nếu chưa, hệ thống sẽ tiến hành kết nối database, query để lấy dữ liệu và lưu trữ vào khoá `key` trong vòng 60 giây. 
  • Các lần sau, nếu truy cập vào link http://localhost/redis/redis_cloud.php hệ thống chỉ việc lấy data trong Redis Cloud và trả về cho người dùng nếu thời gian cache chưa hết hạn. Như vậy, việc dùng Redis Cloud sẽ giúp cải thiện hiệu năng (performance) của webite vì không cần phải truy vấn data trong cơ sở dữ liệu.

References:

Giảng viên Nguyễn Lê Phương
Bộ môn Công nghệ thông tin
FPT Polytechnic Hồ Chí Minh

Cùng chuyên mục

Đăng Kí học Fpoly 2024

  • Max. file size: 512 MB.
  • Max. file size: 512 MB.
  • Max. file size: 512 MB.