Computer >> Máy Tính >  >> Lập trình >> Redis

Mở rộng Laravel với Serverless Redis

Giới thiệu

Laravel là một khung công tác PHP phổ biến để xây dựng các ứng dụng web có khả năng mở rộng, hiệu suất cao.

Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng Redis không máy chủ để mở rộng các ứng dụng Laravel bằng cách lưu trữ phiên Laravel và dữ liệu bộ nhớ cache trong một phiên bản Redis không máy chủ.

Điều kiện tiên quyết

Trước khi bắt đầu, bạn cần có những thứ sau:

  • Tài khoản upstash:Trong trường hợp chưa có, bạn có thể đăng ký miễn phí, không cần thẻ tín dụng.
  • Nếu bạn chưa cài đặt Laravel, bạn có thể làm theo các bước về cách thực hiện việc đó tại đây:Cài đặt Laravel bằng 1 cú nhấp chuột

Tổng quan về kiến ​​trúc

Thay vì chạy Laravel trên một máy chủ, hãy xem xét tình huống sau:

  • Một ứng dụng Laravel chạy trên hai máy chủ web.
  • Một Bộ cân bằng tải duy nhất chịu trách nhiệm định tuyến các yêu cầu đến hai máy chủ web.
  • Máy chủ cơ sở dữ liệu MySQL, được sử dụng để lưu trữ dữ liệu của ứng dụng.
  • Cụm Upstash Serverless Redis chịu trách nhiệm lưu trữ dữ liệu vào bộ nhớ đệm và lưu trữ các phiên của người dùng.

Sơ đồ:

Mở rộng Laravel với Serverless Redis

Serverless Redis là gì?

Serverless Redis là cơ sở dữ liệu được quản lý hoàn toàn dưới dạng sản phẩm dịch vụ trong đó giá dựa trên mỗi lệnh, vì vậy bạn chỉ bị tính phí những gì bạn thực sự sử dụng.

Bằng cách đó, bạn không phải cung cấp quá nhiều máy chủ của mình và bạn có thể mở rộng ứng dụng của mình khi cần.

Tại sao Serverless Redis?

Theo mặc định, Laravel sẽ lưu trữ các phiên người dùng trong các tệp trên đĩa của máy chủ web. Theo cách đó, nếu bộ cân bằng tải chuyển tiếp yêu cầu của người dùng đến một máy chủ khác, phiên người dùng sẽ bị mất.

Đây là lý do tại sao điều quan trọng là phải có một nơi tập trung để lưu trữ các phiên người dùng và bộ đệm ứng dụng, để chúng có thể được chia sẻ giữa các yêu cầu và trên nhiều máy chủ và không bị mất mỗi khi bộ cân bằng tải chuyển tiếp yêu cầu đến một máy chủ khác.

Tất nhiên, bạn cũng có thể sử dụng cơ sở dữ liệu của mình để lưu trữ các phiên người dùng và dữ liệu bộ nhớ cache, nhưng để có hiệu suất tốt hơn, bạn nên sử dụng Redis để có hiệu suất tốt hơn. Nếu bạn muốn tìm hiểu thêm về lợi ích hiệu suất của các tùy chọn khác nhau, hãy xem bài viết tuyệt vời này tại đây:Trình điều khiển bộ nhớ đệm Laravel nào tốt nhất cho hiệu suất?.

Tỷ lệ theo chiều ngang so với Tỷ lệ theo chiều dọc

Chỉ một vài từ về sự khác biệt giữa tỷ lệ theo chiều ngang và chiều dọc:

  • Khi bạn có một máy chủ, bạn có thể mở rộng nó theo chiều dọc bằng cách thêm nhiều tài nguyên hơn vào nó. Ví dụ:bạn có thể thêm nhiều lõi CPU, RAM hoặc dung lượng đĩa hơn để mở rộng quy mô .
  • Chia tỷ lệ ngang ở phía bên kia, là khi bạn thêm nhiều máy chủ hơn chịu trách nhiệm phục vụ các yêu cầu mở rộng quy mô .

Đây là một ví dụ đơn giản về tỷ lệ theo chiều ngang so với tỷ lệ theo chiều dọc:

Mở rộng Laravel với Serverless Redis

Khi mở rộng ứng dụng theo chiều ngang, điều quan trọng là phải xử lý các phiên người dùng và dữ liệu bộ nhớ cache của bạn theo cách có thể mở rộng.

Tạo cụm Redis không máy chủ

Với Upstash, bạn có thể tạo một cụm Redis không máy chủ trong 30 giây bằng cách làm theo các bước sau:

  • Đăng nhập vào tài khoản Upstash của bạn.
  • Nhấp vào Tạo cơ sở dữ liệu nút.
  • Nhập tên của cụm Redis của bạn và chọn một khu vực.
  • Nhấp vào nút Tạo nút.

Đó là nó! Bây giờ bạn có một cụm Redis không máy chủ đã sẵn sàng để sử dụng.

Đảm bảo ghi lại điểm cuối của cụm Redis của bạn cùng với mật khẩu và cổng.

Định cấu hình Laravel với Serverless Redis

Bây giờ bạn đã có một cụm Redis không máy chủ, bạn có thể định cấu hình Laravel để sử dụng nó giống như bạn làm với bất kỳ phiên bản Redis nào khác.

Cài đặt gói Predis

Trước đây, bạn sẽ sử dụng phần mở rộng PHP Redis để kết nối với cụm Redis của mình. Tuy nhiên, bây giờ bạn có thể sử dụng gói Predis để thay thế.

Để cài đặt gói Predis, hãy chạy lệnh sau:

composer require predis/predis

Tiếp theo, hãy chuyển đến .env của dự án Laravel của bạn tập tin và cập nhật các dòng sau:

REDIS_HOST=your_upstash_redis_endpoint
REDIS_PASSWORD=your_upstash_redis_password
REDIS_PORT=your_upstash_redis_port

Trong khi thay đổi chi tiết Redis, hãy đảm bảo cũng thay đổi trình điều khiển bộ nhớ cache và trình điều khiển phiên thành redis :

CACHE_DRIVER=redis
SESSION_DRIVER=redis

Cuối cùng, xóa bộ nhớ cache cấu hình của bạn bằng cách chạy lệnh sau:

php artisan config:clear

Bằng cách đó, ứng dụng Laravel của bạn sẽ sử dụng cụm Redis không máy chủ để lưu trữ bộ nhớ cache và dữ liệu phiên của nó.

Kết luận

Sử dụng Laravel với Serverless Redis là một cách tuyệt vời để mở rộng ứng dụng của bạn. Ngay cả khi bạn đang chạy Laravel trên một cụm Kubernetes, bạn vẫn có thể sử dụng một cụm Redis không máy chủ để lưu trữ các phiên người dùng và dữ liệu bộ nhớ cache theo cách có thể mở rộng.

Để biết thêm thông tin về Upstash, hãy kiểm tra tài liệu.

Để biết thêm thông tin về cách mở rộng ứng dụng Laravel của bạn, hãy xem bài viết sau:

  • Cách thiết lập một ứng dụng Laravel 6 có thể mở rộng bằng cách sử dụng Cơ sở dữ liệu được quản lý và Lưu trữ đối tượng