Redis là gì?

Redis (Remote Dictionary Server) là một phần mềm mã nguồn mở được dùng để lưu trữ dữ liệu có cấu trúc trên bộ nhớ, có thể sử dụng như một database, bộ nhớ cache hay một message broker, giúp truy vấn dữ liệu nhanh chóng.

Redis lưu trữ dữ liệu trên RAM thay vì trên đĩa. Cơ sở dữ liệu trong bộ nhớ được thiết kế để cung cấp quyền truy cập nhanh vào dữ liệu bằng cách tận dụng tốc độ cao của bộ nhớ chính, nhanh hơn nhiều lần so với bộ lưu trữ trên đĩa.

Sử dụng Redis thay vì cache mặc định của hệ thống Magento 2

Như đã trình bày ở trên, Redis lưu trữ dữ liệu trên RAM và đọc ra từ RAM. Do đó tốc độ xử lý truy vấn rất nhanh và tối ưu so với lưu trữ bằng file nếu dùng cache mặc định của Magento. Full Page Cache mặc định của Magento đọc dữ liệu từ ổ đĩa cứng sẽ cho tốc độ truy vấn kém hơn so với lưu trữ trên Redis.

Cơ sở dữ liệu trong bộ nhớ thường được sử dụng trong các ứng dụng yêu cầu truy cập nhanh vào lượng lớn dữ liệu, chẳng hạn như phân tích thời gian thực, trò chơi trực tuyến, thương mại điện tử và mạng xã hội. Chúng cũng được sử dụng trong các ứng dụng yêu cầu hiệu suất và khả năng mở rộng cao, vì cơ sở dữ liệu trong bộ nhớ có thể xử lý khối lượng dữ liệu và giao dịch lớn mà không làm giảm hiệu suất.

sử dụng redis

Ưu và nhược điểm khi sử dụng Redis?

Ưu điểm

  • Tốc độ xử lý nhanh.
  • Dễ cài đặt và sử dụng.
  • Hỗ trợ nhiều cấu trúc dữ liệu linh hoạt.
  • Cho phép lưu trữ các cặp key-value với kích thước lớn.
  • Sử dụng cơ chế hash riêng.
  • Không bị downtime và ảnh hưởng hiệu suất khi thay đổi quy mô.
  • Là một mã nguồn mở, chạy ổn định.
  • Hỗ trợ nhiều ngôn ngữ khác nhau: PHP, Java, Python, C, C++, C#, JavaScript, Node.js, Ruby, Go,…

Nhược điểm

  • Dữ liệu chia sẻ được dựa trên các vị trí hash gán cho từng Master. Vì vậy khi Master đang giữ slot gặp trục trặc, dữ liệu trong slot đó cũng sẽ bị mất.
  • Client khi kết nối đến các Cluster Redis nên chú ý đến cấu trúc liên kết cụm.
  • Khi sử dụng Redis cần yêu cầu RAM vì cơ chế in-memory.

Các kiểu dữ liệu của Redis là gì?

Strings

Là cấu trúc lưu trữ các chuỗi byte, bao gồm văn bản, đối tượng được tuần tự hóa và mảng nhị phân. Là loại giá trị đơn giản nhất mà bạn có thể liên kết với khóa Redis. Chúng thường được sử dụng để lưu vào bộ nhớ đệm nhưng chúng cũng hỗ trợ chức năng bổ sung cho phép bạn triển khai bộ đếm và thực hiện các thao tác theo bit.

Set

Là một tập hợp các chuỗi (member) duy nhất không có thứ tự. Bạn có thể sử dụng Redis để:

  • Theo dõi các mục duy nhất (ví dụ: theo dõi tất cả các địa chỉ IP duy nhất truy cập vào một bài đăng blog nhất định).
  • Biểu thị các mối quan hệ (ví dụ: tập hợp tất cả người dùng có vai trò nhất định).
  • Thực hiện các phép toán tập hợp phổ biến như giao điểm, hợp và hiệu.

List

Là danh sách liên kết của các giá trị chuỗi. Danh sách Redis thường được sử dụng để:

  • Triển khai ngăn xếp và hàng đợi.
  • Xây dựng quản lý hàng đợi cho hệ thống nhân viên nền.

Hash

Là các loại bản ghi được cấu trúc dưới dạng tập hợp các cặp giá trị trường. Bạn có thể sử dụng hàm hash để biểu diễn các đối tượng cơ bản như các hàng trong cơ sở dữ liệu quan hệ và để lưu trữ các nhóm bộ đếm, cùng nhiều thứ khác.

Sorted sets

Là tập hợp các chuỗi (member) duy nhất và được sắp xếp theo điểm số (ở dạng số thập phân). Khi có nhiều hơn một chuỗi có cùng số điểm, các chuỗi sẽ được sắp xếp theo từ điển. Một số trường hợp sử dụng cho các tập hợp được sắp xếp bao gồm:

  • Bảng xếp hạng. Ví dụ: bạn có thể sử dụng các sorted sets để dễ dàng duy trì danh sách có thứ tự các điểm cao nhất trong một trò chơi trực tuyến lớn.
  • Giới hạn tỷ lệ. Đặc biệt, bạn có thể sử dụng sorted sets để xây dựng bộ giới hạn tốc độ cửa sổ trượt nhằm ngăn chặn các yêu cầu API quá mức.

Stream

Là cấu trúc dữ liệu vô cùng mạnh mẽ trong việc quản lý các luồng dữ liệu tốc độ cao. Chúng bao gồm truy cập ngẫu nhiên trong thời gian O(1) và các chiến lược tiêu dùng phức tạp, chẳng hạn như các nhóm người tiêu dùng. Bạn có thể sử dụng luồng để ghi lại và cung cấp đồng thời các sự kiện trong thời gian thực. Ví dụ về các trường hợp sử dụng Redis Stream bao gồm:

  • Tìm nguồn cung ứng sự kiện (ví dụ: theo dõi hành động của người dùng, số lần nhấp, v.v.).
  • Giám sát cảm biến (ví dụ: kết quả đọc từ các thiết bị tại hiện trường).
  • Thông báo (ví dụ: lưu trữ bản ghi thông báo của từng người dùng trong một luồng riêng biệt).

Bitmap

Là một cấu trúc dữ liệu có kích thước nhỏ, được lưu trữ các trạng thái và logic nhị phân. Cấu trúc dữ liệu này cung cấp các lệnh để tìm nạp và đặt giá trị tại một vị trí nhất định, bên cạnh đó cho phép áp dụng các toán tử AND, OR, XOR và NOT cho các key bitmap.

Bitfield

Là một cấu trúc dữ liệu có kích thước nhỏ, được lưu trữ các trạng thái và logic nhị phân. Cấu trúc dữ liệu này cung cấp các lệnh để tìm nạp và đặt giá trị tại một vị trí nhất định, bên cạnh đó cho phép áp dụng các toán tử AND, OR, XOR và NOT cho các key bitmap.

Redis geospatial

Cho phép bạn lưu trữ tọa độ và tìm kiếm chúng. Cấu trúc dữ liệu này rất hữu ích để tìm các điểm lân cận trong bán kính hoặc hộp giới hạn nhất định.

Hướng dẫn cài đặt và sử dụng Redis trên MacOs

Sử dụng Homebrew để cài đặt và khởi động Redis trên macOS.

Đầu tiên, hãy đảm bảo bạn đã cài đặt Homebrew. Từ terminal bạn chạy câu lệnh:

brew –version

Cài đặt

Từ terminal bạn chạy câu lệnh:

brew install redis

Redis sẽ được cài đặt trên hệ thống của bạn.

Khởi động và tắt Redis

Để kiểm tra cài đặt Redis, bạn có thể chạy tệp thực thi redis-server từ dòng lệnh:

redis-server

Screenshot 2023 11 07 at 10.58.57 1

Nếu thành công, bạn sẽ thấy nhật ký khởi động của Redis và Redis sẽ chạy ở nền trước.

Để dừng lại, bạn gõ Ctrl-C.

Bạn sử dụng câu lệnh này để bắt đầu khởi động redis:

brew services start redis

Thao tác này sẽ khởi chạy Redis và khởi động lại nó khi đăng nhập. Bạn có thể kiểm tra trạng thái của Redis được quản lý launchd bằng cách chạy như sau:

brew services info redis

Nếu services đang chạy, bạn sẽ thấy kết quả như sau:

Screenshot 2023 11 07 at 11.04.12 1

Để dừng service, bạn chạy câu lệnh:

brew services stop redis

Kết nối tới Redis

Khi Redis đang chạy, bạn có thể kiểm tra nó bằng cách chạy redis-cli:

redis-cli

Điều này sẽ mở Redis REPL. Bạn có thể chạy thử một vài dòng lệnh:

Screenshot 2023 11 07 at 14.42.50

Liên hệ ngay với chúng tôi để khám phá điều mà các Dịch vụ Giải Pháp TMĐT và Dịch vụ Phát triển có thể mang lại cho sự phát triển doanh nghiệp của bạn.