REDIS 1. TỔNG QUAN
Redis là một hệ thống lưu trữ dữ liệu trong bộ nhớ chính (RAM) theo các loại cấu trúc (in-memory data structure store), thường được dùng làm cơ sở dữ liệu (CSDL), bộ nhớ đệm cache hay làm một message broker (trung gian truyền tải các thông điệp).
Redis hỗ trợ rất nhiều kiểu cấu trúc dữ liệu: strings, hashes, lists, sets, sorted sets và cho phép truy vấn theo khoảng (range), bitmaps,... Chúng ta sẽ tìm hiểu về một vài kiểu cấu trúc trong những bài viết sau.
Redis có rất nhiều tính năng hữu ích:
1. Redis được tích hợp những tính năng giúp nâng cao khả năng sẵn sàng phục vụ (high availability) thông qua một số chức năng là Redis Cluster hay Redis Sentinel, bên cạnh khả năng "nhân bản" - Replication theo mô hình master-slave (một vài Redis instances đóng vai trò slave là bản sao chính xác của một Redis instance giữ vai trò master). Theo đó Redis Sentinel kết hợp với Replication, khi master không thể phục vụ, Sentinel đảm nhiệm nhiệm vụ giám sát sẽ tự lựa chọn một master mới trong các slaves. Còn Redis Cluster giúp Redis hoạt động theo mô hình phân tán, chia một instance thành nhiều cluster, khác với Replication + Sentinel đó là các cluster đều được coi như master.
2. Redis sử dụng một tập các câu lệnh mà bên trong đó có thể thực thi các lệnh của ngôn ngữ Lua (Lua scripting)
3. Redis có thể được dùng như một bộ nhớ đệm, tự động xóa bỏ dữ liệu cũ khi thêm một dữ liệu mới. Khi đó bộ nhớ đệm này có thể hoạt động theo thuật toán LRU (Least Recently Used) và cả LFU (Least Frequently Used) kể từ phiên bản 4.0.
4. Redis hỗ trợ một trong những chức năng rất quan trọng của các CSDL, đó là làm việc theo transaction. Theo đó, một transaction sẽ bao gồm một loạt các lệnh thực hiện tuần tự, và một client khác sẽ không thể thực thi các lệnh mà có thể chen ngang vào transaction đó. Ta sẽ sử dụng lệnh MULTI để khởi tạo và bắt đầu một transaction, tiếp theo các lệnh thực thi sẽ được đưa vào một queue cho đến khi client gửi lệnh EXEC để tiến hàng transaction. Nếu một trong các lệnh thực thi bị lỗi về cú pháp hoặc lỗi xuất hiện sau khi thực hiện EXEC thì transaction sẽ bị hủy, dữ liệu sẽ được khôi phục về thời điểm khi transaction chưa được khởi tạo.
5. Ngoài ra Redis còn có thể thực hiện những phương thức như nối chuỗi, tăng giá trị của một đoạn hash, push một phần tử vào list, tính giao - hợp - phần bù của các tập hợp, tìm phần tử có xếp hạng cao nhất trong sorted set,...
6. Redis hỗ trợ làm việc với 50 ngôn ngữ lập trình khác nhau: C/C++, C#, Java, Python, Ruby, Matlab, PHP, PL/SQL, VB, Swift,...
(còn tiếp)
vtcc_intern_9
,redis
,công nghệ thông tin
Cơ chế cluster của redis như thế nào?
Người ẩn danh
Cơ chế cluster của redis như thế nào?
Người ẩn danh
Redis có cơ chế khôi phục khi mất dữ liệu không?
Người ẩn danh
Bạn cho biết những hệ thống thường sử dụng redis nhé
Hưng Nguyễn
Hay wé :">
Ủng hộ