Redis cache là gì?
Redis cache (gọi tắt là Redis) là một mã nguồn mở lưu trữ dữ liệu có cấu trúc trên bộ nhớ RAM. Nó được sử dụng như một cơ sở dữ liệu hoặc một bộ nhớ cache.
Nó hỗ trợ một loạt các cấu trúc dữ liệu như hashes, strings và lists.
Ưu và nhược điểm của Redis cache
Redis cache có những ưu và nhược điểm sau:
Ưu điểm
- Tăng tốc độ truy xuất dữ liệu: Redis cache lưu trữ các dữ liệu ở trên bộ nhớ chính giúp giảm thời gian truy cập vào ổ đĩa và tăng tốc độ truy xuất các dữ liệu.
- Hỗ trợ nhiều tính năng bổ sung: Redis cache cung cấp cho bạn nhiều tính năng hữu ích như transactions, publish-subscribe messaging và lua scripting
- Hỗ trợ cấu trúc dữ liệu phong phú: Ngoài dạng key-value đơn giản, Redis còn hỗ trợ những cấu trúc dữ liệu khác phức tạp hơn như hash, list, sorted set, set và bitmaps
Nhược điểm
- Bị giới hạn bộ nhớ: Dung lượng bộ nhớ của Redis sẽ bị giới hạn bởi bộ nhớ có sẵn trên hệ thống.
- Không đảm bảo sự bền vững: Vì Redis lưu trữ các dữ liêu ở trên bộ nhớ chính nên nếu máy chủ Redis bị tắt hay khởi động lại thì các dữ liệu trong cache sẽ bị mất. Nó không phù hợp để lưu trữ các dữ liệu quan trọng.
Redis cache hoạt động như thế nào?
Redis cache không lưu trữ dữ liệu trên ổ cứng mà nó lưu trực tiếp trong bộ nhớ RAM của máy chủ, điều này làm giảm đáng kể thời gian truy cập và tăng tốc độ để xử lý.
Khi có ứng dụng gửi yêu cầu dữ liệu tới Redis cache, máy chủ Redis sẽ kiểm tra xem dữ liệu đã có sẵn ở trong bộ nhớ chưa, nếu có rồi thì Redis cache sẽ trả lại ngay cho ứng dụng đang yêu cầu, còn nếu không có, Redis cache sẽ đi lấy dữ liệu từ các nguồn khác như hệ thống lưu trữ chính, rồi lưu dữ liệu về bộ nhớ đệm để dùng cho những yêu cầu tiếp theo.
Hướng dẫn cấu hình Redis cache
Để cấu hình Redis, bạn thực hiện theo các bước sau:
Bước 1: Cài đặt Redis Object Cache
Tại Dashboard WordPress, vào phần Plugin, bấm vào nút Add New Plugin, tìm kiếm “Redis Object Cache” trên thanh tìm kiếm, sau đó bấm Cài đặt và Kích hoạt, như hình dưới đây:
Bước 2: Kích hoạt kết nối Redis cache
Tại phần setting của Redis Object cache, bạn ấn vào nút Enable Object Cache, nếu kết quả hiển thị là Connected, thì website của bạn đã được kích hoạt Redis cache thành công.
Lưu ý: Các lần truy cập đầu có thể sẽ không thấy sự khác biệt do Redis cache của bạn vẫn đang thu thập cache website bạn, hãy đợi một thời gian rồi vào lại, bạn sẽ ngạc nhiên vì tốc độ của website được cải thiện đó.
Mặt khác, nếu bạn muốn vô hiệu hóa Redis Object cache, chỉ cần nhấn vào nút Disable Object Cache trong phần setting là được.
Sử dụng Redis trong việc cache dữ liệu
Các chiến thuật Caching
Cache Aside
Khi ứng dụng cần đọc dữ liệu từ database, nó sẽ thực hiện kiểm tra trước xem cache có chứa các dữ liệu nó cần không. Nếu có (cache hit) thì sẽ trả về dữ liệu cần truy vấn, không có thì ứng dụng sẽ lấy dữ liệu từ database.
Read Through
Cũng giống như cache aside, nhưng ở đây thì việc lấy dữ liệu từ phía database khi cache miss là của cache.
Write Through
Dữ liệu sẽ được ghi vào cache, rồi được lưu vào database. Khi được dùng cùng với phương pháp read through thì sẽ dữ liệu sẽ có tính nhất quán, không cần dùng các kỹ thuật cache invalidation.
Write Back
Ứng dụng lưu trữ tất cả vào cache, sau khoảng thời gian delay nào đó, cache sẽ lưu tất cả vào database, chiến thuật này thường sẽ dùng cho những ứng dụng nặng, nhưng nếu có lỗi trước khi cache lưu dữ liệu vào trong database thì các dữ liệu vừa được lưu trong cache sẽ bị mất.
Cache invalidation
Khi dữ liệu ở trong database bị thay đổi thì dữ liệu trong cache đã không còn chính xác, cần update hoặc bỏ chúng đi, đây gọi là Cache invalidation.
Kiểu dữ liệu trong Redis Cache
Redis hỗ trợ nhiều kiểu dữ liệu khác nhau, mỗi kiểu dữ liệu phù hợp với các trường hợp sử dụng cụ thể:
- STRING: String, float hoặc integer. Redis có thể làm việc với string, từng phần của string, cũng như tăng hoặc giảm giá trị của float và integer.
- SET: Tập hợp những strings không được sắp xếp, hỗ trợ thêm, xóa, đọc, kiểm tra sự xuất hiện của phần tử.
- LIST: Danh sách strings, sắp xếp theo thứ tự insert, phù hợp cho những thao tác với phần tử gần đầu và cuối danh sách.
- SORTED SET (ZSET): floating-point number (score), sắp xếp theo score và danh sách map của string (member).
- HASH: Hash table của những cặp key-value. Hỗ trợ đọc tất cả giá trị và thêm, đọc, xóa từng phần tử.
- Bit arrays, HyperLogLogs, Streams: Là những kiểu dữ liệu khác giúp Redis cache linh hoạt và mạnh hơn.
Vậy là trên đây HostingViet đã giải đáp cho bạn khái niệm “Redis cache là gì?” và những thông tin liên quan tới nó. Hy vọng các thông tin này sẽ hữu ích với bạn.