Redis là gì? Ưu điểm nổi bật và ứng dụng của Redis

947
22-03-2019
Redis là gì? Ưu điểm nổi bật và ứng dụng của Redis

Redis là một phần mềm mã nguồn mở, lưu trữ cấu trúc dữ liệu trong bộ nhớ RAM và truy xuất một cách nhanh chóng, nó có thể được sử dụng như database, cache và message broker. Để tìm hiểu sâu hơn về khái niệm Redis cũng như thông tin liên quan cùng Bizfly Cloud xem chi tiết ngay tại bài viết này nhé. 

1. Redis là gì? 

Redis là một phần mềm mã nguồn mở, lưu trữ cấu trúc dữ liệu trong bộ nhớ RAM và truy xuất một cách nhanh chóng, nó có thể được sử dụng như database, cache và message broker.

Redis lưu trữ dữ liệu dưới dạng field-value, cho phép lưu trữ trên RAM để tăng tốc độ truy xuất và cho phép cả lưu trữ trên đĩa cứng để đảm bảo dữ liệu.

2. Redis có ưu điểm gì?

  • Dữ liệu lưu trữ trên RAM nên tốc độ truy xuất (thêm mới, cập nhật, xóa) một cách cực nhanh, tuy nhiên vẫn cho phép lưu trữ cả trên đĩa cứng để phục hồi
  • Có thể cấu hình tự động xóa field theo thời gian nhất định
  • Hỗ trợ nhiều loại dữ liệu khác nhau
  • Cung cấp tính năng HA và Cluster

3. Các kiểu dữ liệu trong redis?

  • Strings: String là value cơ bản nhất trong Redis. String là loại lưu trữ nhị phân, có thể bao gồm bất cứ loại cấu trúc nào như string, interger, float hay thậm chí cả một ảnh JPEG hoặc một object Ruby.

Một string value tối đa 512MB

  • Lists: List là một danh sách của strings, sắp xếp theo thứ tự insert. Redis có thể thêm một phần tử vào đầu hoặc cuối list.

Độ dài tối đa của một list là (2^32 - 1) elements ( khoảng hơn 4 tỉ phần tử trong một list)

List phù hợp cho các bài toán cần thao tác với các phần tử gần đầu và cuối vì việc truy xuất này là cực nhanh, cho dù insert cả triệu phần tử. Tuy nhiên nhược điểm là việc truy cập vào các phần tử ở giữa list rất chậm.

Redis.io đưa ra 2 trường hợp dùng Lists:

  • Lưu lại posts của người dùng trên mạng xã hội (ví dụ như twitter)
  • Tương tác giữa nhà cung cấp và khách hàng: Nhà cung cấp đưa item vào list và khách hàng truy xuất các item này theo thứ tự nhất định.

- Sets: Sets là một tập hợp không sắp xếp của strings. Có thể thêm, xóa, check sự tồn tại của một phần tử trong set.

Tuy việc thêm một phần tử vào set không yêu cầu check đã tồn tại hay chưa, nhưng các phần tử nên là duy nhất.

Một set có tối đa 232 - 1 (khoảng hơn 4 tỉ phần tử)

- Hashes: Hashes là nhưng bản map của string fields và string values, đây là loại data phù hợp nhất cho hướng đối tượng.

Mỗi hash có thể lưu trữ 232 - 1 (khoảng hơn 4 tỉ) cặp field-values.

- Sorted sets: Sorted Sets (zset) giống như Sets, nhưng là một tập không lặp lại của strings. Điểm khác nhau là mỗi phần tử của zset được gắn với một float number, gọi là score. Các phần tử của zset được sắp xếp theo thứ tự từ score nhỏ tới lớn.

Ngoài ra, Redis còn hỗ trợ các data types khác như: Bit arrays, HyperLogLogs, Streams

4. Ứng dụng của Redis

- Session Cache

Ứng dụng phổ biến nhất của Redis là sử dụng như một session cache. Ưu điểm của Redis so với một số ứng dụng cache khác (như Memcached) là tính nhất quán ở mặt lưu trữ. Việc khởi động lại khi maintain, thay đổi cấu hình sẽ không làm mất dữ liệu đang cache. Một khách hàng đương nhiên là sẽ không muốn các sản phẩm của mình trong giỏ đột nhiên biến mất vì một lý do nào đó.

Sử dụng Redis cho session cache hiện nay có rất nhiều tài liệu hướng dẫn, ngay cả platform thương mại điện tử phổ biến nhất là Magento cũng đã có sẵn plugin Redis.

- Full Page Cache (FPC)

Tương tự như session cache, Redis có thể sử dụng để làm FPC cho website. Cũng vì tính nhất quán của Redis, cho dù restart Redis thì người dùng cũng không có cảm nhận chậm khi tải trang.

Magento và Wordpress đều có plugin Redis thực hiện FPC

- Queues

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.

- Leaderboards/Counting

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 được sử dụng thực hiện các bảng xếp hạng trong game, đếm lượt view của một website.

- Pub/Sub: Sử dụng để lưu trữ thông tin của những subcribers và những gì họ quan tâm.

Pub/Sub được sử dụng theo dõi các kết nối trong mạng xã hội hoặc các hệ thống chat.

Theo Bizfly Cloud chia sẻ

Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.

DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud

TAGS: Redis
SHARE