post-image

Redis là gì mà lại hay tới vậy ?

Tổng quan

Hiện nay có rất nhiều loại cơ sở dữ liệu khác nhau từ NoSQL với MongoDB cho đến MySQL đã quá quen thuộc với các lập trình viên. Và rồi Redis xuất hiện,  nó được sử dụng để lưu trữ các dữ liệu có cấu trúc với tốc độ nhanh. Vậy Redis là gì ? Cùng tìm hiểu nào

Redis là gì ?

Redis là tên viết tắt của Remote Dictionary Server, là kho dữ liệu khóa-giá trị, trong bộ nhớ, mã nguồn mở và có tốc độ truy cập nhanh để dùng để lưu trữ dữ liệu có cấu trúc, làm database, bộ nhớ cache. Nó là cơ sở dữ liệu NoSQL, lưu trữ dữ liệu với dạng KEY-VALUE với nhiều tính năng được sử dụng rộng rãi.

redis

Lợi ích của việc sử dụng Redis

  • Cấu trúc dữ liệu linh hoạt: Kiểu dữ liệu gồm có String, List, Set,…
  • Đơn giản dễ sử dụng: chỉ cần viết vài dòng lệnh là chúng ta đã có thể truy cập, lưu trữ và sử dụng dữ liệu.
  • Khả năng mở rộng: Redis là dự án mã nguồn mở được một cộng đồng đông đảo ủng hộ. 
  • Redis hỗ trợ thêm mới, cập nhật, xoá dữ liệu một cách nhanh chóng.
  • Lưu trữ dữ liệu dạng KEY-VALUE.
  • Dữ liệu được lưu trữ trên RAM giúp việc truy xuất dữ liệu một cách nhanh chóng. Ngoài ra bạn có thể cấu hình để Redis có thể lưu trữ dữ liệu trên ổ cứng.

Các kiểu dữ liệu

– STRING: string, integer hoặc float. Redis có thể làm việc với cả string, từng phần của string, cũng như tăng/giảm giá trị của integer, float.

– LIST: danh sách liên kết của các strings. Redis hỗ trợ các thao tác push, pop từ cả 2 phía của list, trim dựa theo offset, đọc 1 hoặc nhiều items của list, tìm kiếm và xóa giá trị.

– SET: tập hợp các string (không được sắp xếp). Redis hỗ trợ các thao tác thêm, đọc, xóa từng phần tử, kiểm tra sự xuất hiện của phần tử trong tập hợp. Ngoài ra Redis còn hỗ trợ các phép toán tập hợp, gồm intersect/union/difference.

– HASH: lưu trữ hash table của các cặp key-value, trong đó key được sắp xếp ngẫu nhiên, không theo thứ tự nào cả. Redis hỗ trợ các thao tác thêm, đọc, xóa từng phần tử, cũng như đọc tất cả giá trị.

– ZSET (sorted set): là 1 danh sách, trong đó mỗi phần tử là map của 1 string (member) và 1 floating-point number (score), danh sách được sắp xếp theo score này. Redis hỗ trợ thao tác thêm, đọc, xóa từng phần tử, lấy ra các phần tử dựa theo range của score hoặc của string.

Ứng dụng của việc sử dụng Redis

  • Caching: Sử dụng làm bộ nhớ đệm. Chính tốc độ đọc ghi nhanh mà Redis có thể làm bộ nhớ đệm, nơi chia sẻ dữ liệu giữa các ứng dụng hoặc làm database tạm thời.
  • Counter: Sử dụng làm bộ đếm. Với thuộc tính tăng giảm thông số rất nhanh trong khi dữ liệu được lưu trên RAM, sets và sorted sets. Chúng ta có thể sử dụng Counter để làm các bảng xếp hạng game, đếm số lượt view của 1 website.
  • Machine Learning: Các ứng dụng kiểu mới, chịu sự chi phối của dữ liệu yêu cầu machine learning phải có khả năng nhanh chóng xử lý được dữ liệu theo khối lượng lớn, đa dạng, tốc độ cao và tự động hóa quá trình ra quyết định nên sử dụng Redis là một lựa chọn không tồi.
  • Publish/Suscribe (Pub/Sub): Tạo kênh chia sẻ dữ liệu. Redis hỗ trợ tạo các channel để trao đổi dữ liệu giữa publisher và subscriber giống như channel trong Socket Cluster hay topic trong Apache Kafka. 
  • Queues: Tạo hàng đợi để xử lý lần lượt các request. Redis cho phép lưu trữ theo list và cung cấp rất nhiều thao tác với các phần tử trong list, vì vậy nó còn được sử dụng như một message queue.

Khả năng hỗ trợ ngôn ngữ

Redis hỗ trợ phần lớn các ngôn ngữ lập trình như là:

  • Java
  • PHP
  • Python
  • JavaScript
  • C#

Đọc thêm: Giới thiệu về Firebase

Leave a Reply

Your email address will not be published.