A. Câu Hỏi Cơ Bản Về Redis:
-
Redis là gì?
Redis (Remote Dictionary Server) là một công cụ mã nguồn mở, lưu trữ dữ liệu dạng key-value trong bộ nhớ (in-memory) có khả năng được sử dụng như một cơ sở dữ liệu, cache, và message broker. -
Những tính năng chính của Redis là gì?
Redis nổi bật với khả năng lưu trữ dữ liệu trong bộ nhớ, độ bền dữ liệu, sao chép dữ liệu (replication), phân chia dữ liệu (sharding), hỗ trợ nhiều loại dữ liệu, các phép toán nguyên tử, nhắn tin pub/sub, và lập trình bằng Lua. -
Redis khác gì so với các cơ sở dữ liệu quan hệ truyền thống?
Redis là một hệ thống lưu trữ dữ liệu key-value in-memory, mang lại tốc độ truy xuất cực nhanh, trong khi các cơ sở dữ liệu quan hệ truyền thống sử dụng SQL và thường hoạt động trên disk, dẫn đến độ trễ cao hơn. -
Những trường hợp sử dụng phổ biến của Redis là gì?
Redis thường được sử dụng cho caching, quản lý session, phân tích thời gian thực, bảng xếp hạng, hàng đợi tin nhắn, khóa phân phối, và nhắn tin pub/sub. -
Redis hỗ trợ những cấu trúc dữ liệu nào?
Redis hỗ trợ nhiều cấu trúc dữ liệu như Strings, Lists, Sets, Sorted Sets, Hashes, Bitmaps, HyperLogLogs, Streams, và Geospatial indexes. -
Redis key là gì, và quy tắc đặt tên cho Redis keys là gì?
Một key trong Redis là một định danh duy nhất cho một phần dữ liệu. Redis keys là binary-safe và có thể dài đến 512MB. Quy tắc đặt tên thông thường sử dụng dấu hai chấm (:
) để phân tách namespace (ví dụ:user:1001:info
). -
Redis caching là gì?
Redis caching là cách sử dụng Redis như một store hiệu suất cao để lưu trữ dữ liệu thường xuyên được truy cập, giúp cải thiện tốc độ phản hồi của ứng dụng và giảm tải lên cơ sở dữ liệu chậm hơn. -
Làm thế nào để đặt một giá trị trong Redis?
Bạn có thể sử dụng lệnhSET key value
để lưu trữ một giá trị dưới key đã chỉ định. -
Làm thế nào để truy xuất một giá trị từ Redis?
Sử dụng lệnhGET key
để lấy giá trị tương ứng với key mà bạn đã chỉ định. -
Lệnh
EXPIRE
trong Redis là gì?
LệnhEXPIRE key seconds
thiết lập thời gian hết hạn cho một key. Sau thời gian này, key sẽ tự động bị xóa. Thời gian được chỉ định tính bằng giây. -
Sự khác biệt giữa
SETEX
vàSET
vớiEXPIRE
là gì?
SETEX
cho phép bạn thiết lập một key với giá trị và thời gian hết hạn trong cùng một lệnh (SETEX key seconds value
), trong khiSET
và sau đó làEXPIRE
yêu cầu hai lệnh. -
Redis eviction policy là gì?
Chính sách eviction trong Redis xác định cách thức xử lý bộ nhớ khi đạt đến giới hạn tối đa. Các chính sách phổ biến bao gồmnoeviction
,allkeys-lru
,volatile-lru
,allkeys-random
, vàvolatile-ttl
. -
Least Recently Used (LRU) eviction policy trong Redis là gì?
Chính sách LRU sẽ loại bỏ các keys ít được sử dụng gần đây nhất khi Redis đạt đến giới hạn bộ nhớ, đảm bảo rằng dữ liệu được truy cập thường xuyên sẽ được giữ lại. -
Mục đích của lệnh
FLUSHALL
trong Redis là gì?
FLUSHALL
được sử dụng để xóa tất cả keys khỏi mọi cơ sở dữ liệu trong Redis, làm sạch instance Redis hoàn toàn. -
Redis đảm bảo tính bền vững của dữ liệu như thế nào?
Redis cung cấp hai phương pháp để lưu trữ dữ liệu: RDB snapshots (ảnh chụp tại thời điểm) và AOF (Append-Only File), ghi lại mọi thao tác ghi để bảo toàn dữ liệu lâu dài hơn.
B. Câu Hỏi Trung Cấp Về Redis:
-
Redis Cluster là gì?
Redis Cluster là một cách để triển khai Redis một cách phân tán, tự động chia tách dữ liệu giữa nhiều nodes, cung cấp khả năng sẵn sàng cao và mở rộng mà không có điểm lỗi duy nhất. -
Sự khác biệt giữa Redis replication và Redis clustering là gì?
Replication là quá trình sao chép dữ liệu từ một master node sang một hoặc nhiều slave nodes, cung cấp khả năng đọc mở rộng và dự phòng. Clustering cho phép chia đều dữ liệu giữa nhiều master nodes, giúp dễ dàng mở rộng.
source: viblo