Yêu cầu thg 12 3, 2019 9:12 SA 219 0 3
  • 219 0 3
+1

[Laravel] Mọi người cho em hỏi về Redis trong laravell

Chia sẻ
  • 219 0 3

Chào mọi người ạ! Hôm nay em bắt đầu tìm hiểu về Redis trong Laravel, em thấy nó ứng dụng vào việc lưu cache để giúp tiết kiệm thời gian load database. Mọi người cho em hỏi nếu vậy tại sao em thấy trong Laravel có sẵn Cache rồi, vậy tại sao lại không dùng Cache mà lại dùng Redis ạ? Và Cache với Redis có khác biệt gì không ạ? Em cũng mới tìm hiểu có gì hỏi sai mong mọi người thông cảm. Cám ơn đã đọc ạ?

3 CÂU TRẢ LỜI


Đã trả lời thg 12 3, 2019 9:22 SA
Đã được chấp nhận
+6

A thấy rất nhiều component trong Laravel ở dạng driver-based ví dụ như Authentication, Queue, Database, Session, Notifications, Cache,...

Trong trường hợp của em Redis chỉ là một dạng driver của cache component.

Performance thì còn tùy ứng dụng, e có thể dùng Redis, memcached,.. Hoặc nếu driver e cần dùng không được support bởi Framework thì em có thể extend framework và tạo custom cache driver.

Chia sẻ
Avatar Yoshin @nhoxhocju
thg 12 3, 2019 9:29 SA

Dạ tại công ty em đang tìm hiểu về mô hình microservice nên em tìm hiểu redis giúp load data nhanh á anh. Em dùng laravel. Em tính dùng logic là: Khi nào mình truy vấn thì mình sẽ kiểm tra coi Redis có tồn tại không? nếu có thì load Redis ra, còn không thì truy vấn bình thường đúng không anh?

Avatar Vinh Nguyen @vinhnguyen
thg 12 3, 2019 9:34 SA

Đúng rồi em, đó là flow cơ bản. Ngoài ra em còn phải quan tâm đến:

  • Thời gian expire của cache
  • Tạo cache key co phù hợp
  • Dữ liệu lưu vào cần tối giản như thế nào
  • ...

Còn microservice thì thông thường redis sẽ chạy ở 1 container / pod (nếu e dùng Kubernetes) riêng, và mình phải tính toán đến việc scaling và availability cho nó nữa.

Đã trả lời thg 12 3, 2019 9:15 SA
+2

Cache mặc định của laravel ở trên ổ đĩa cứng, còn cache bằng Redis ở trên RAM, cache sử dụng Redis sẽ nhanh hơn.

Chia sẻ
Avatar Yoshin @nhoxhocju
thg 12 3, 2019 9:17 SA

Anh ơi vậy khi nào mình truy vấn thì mình sẽ kiểm tra coi Redis có tồn tại không? nếu có thì load Redis ra, còn không thì truy vấn bình thường đúng không anh?

Đã trả lời thg 12 3, 2019 9:35 SA
+1

cơ bản thì nếu bạn cài Redis vào máy xong, đổi lại thông số trong file .env, sau đó bạn dùng hàm cache() trong laravel để gọi ra hoặc lưu vào, không khác gì cache trên đĩa hay cache trên DB

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí