Giới thiệu sơ lược về Redis
Redis là gì?
Redis là một dạng open source key-value store rất phổ biến hiện nay. Redis được dùng nhiều để xây dựng các web app có performance và khả năng scalable cao.
Các đặc điểm của Redis
– Redis còn là một loại in-memory storage, tức là toàn bộ database của nó được lưu tại RAM thay vì ổ cứng.
– Số lượng data types được định nghĩa trong Redis nhiều hơn hẳn so với các loại key-value storage khác.
– Redis có thể sao chép data sang nhiều slaves khác nhau.
Ưu điểm của Redis
– Tốc độ nhanh rõ rệt: do truy xuất dữ liệu trên RAM, tốc độ query dữ liệu của Redis là cực kỳ nhanh, có thể lên đến 110000 lệnh SETs mỗi giây, 81000 GETs mỗi giây.
– Hỗ trợ nhiều loại data types khác nhau: Redis hỗ trợ hầu hết các loại data types được các developers hay dùng hiện nay như list, set, sorted set, và hashes. Điều này giúp ta dễ dàng hơn để giải quyết nhiều bài toán khác nhau khi mà một loại data type cụ thể nào đó mạnh/dễ dùng hơn các loại khác.
– Dù là NOSQL database, nhưng các operation ở Redis vẫn có tính chất atomic, tức là nếu có từ 2 clients trở lên cùng vào database, Redis server sẽ luôn cập nhật giá trị data mỗi khi có thay đổi.
– Redis có thể được dùng trong nhiều use-cases khác nhau chẳng hạn như caching, messaging-queues (Redis hỗ trợ Publish/Subscribe một cách native), các data có vòng đời ngắn trong application như sessions, hit counts…
So sánh Redis với các loại key-value store khác
– Redis hỗ trợ nhiều loại data type khác nhau, và các operation của Redis có tính chất atomic.
– Redis là in-memory database, nên tốc độ của Redis là cực kỳ nhanh. Đổi lại, database của Redis không thể lớn hơn độ lớn của memory.
– Cũng chính vì là in-memory database nên kiến trúc database của Redis có độ phức tạp thấp, và dễ thao tác hơn so với các loại database lưu trên ổ cứng.
Kết luận
Như đã giới thiệu ở trên, Redis hiện nay được cho là dễ dùng hơn một số loại key-value store khác vì nó vừa mang tính chất đơn giản và những ưu điểm đặc thù của một key-value store (mà điền hình là full-text search), lại vừa “thân thiện”, dễ dùng, đa tính năng nhờ vào việc có thể áp dụng những kiểu data types thông dụng như list, sort, set…
Redis sẽ là một lựa chọn tốt cho các bài toán database không cần tuổi thọ quá lâu mà lại mong muốn có độ truy xuất tối ưu như là giỏ hàng…, đổi lại, việc là một in-memory database khiển cho Redis khó có thể là một database chính được. Dù Redis vẫn có khả năng sao lưu dữ liệu trước khi shutdown memory, nhưng các use-case dùng song song Redis với một RDMBS vẫn là phổ biến hơn cả.