Mở đăng ký khóa học Fullstack qua Zoom. Tham khảo tại đây

Thư Viện Câu Hỏi Phỏng Vấn

Tổng hợp các câu hỏi tuyển dụng thực tế theo nhiều cấp độ từ Entry đến Expert để bạn tự tin chinh phục nhà tuyển dụng.

Interactive Practice Tổng cộng 4,442 câu hỏi độc bản

Luyện Tập Phỏng Vấn Thử

Mô phỏng áp lực phỏng vấn thật với đồng hồ đếm ngược từng câu, tự đánh giá phản xạ và đo lường độ sẵn sàng của bạn.

Vui lòng đăng nhập để tham gia luyện tập và lưu tiến độ phỏng vấn.
Khóa học Chuyên sâu Redis

Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

01

Làm thế nào để tối ưu hóa hiệu năng và quản lý In-memory caching trong dự án Redis?

Entry

Trong phát triển dự án với Redis, việc tối ưu hóa và quản lý tốt In-memory caching là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
02

Làm thế nào để tối ưu hóa hiệu năng và quản lý Cluster sharding topology trong dự án Redis?

Entry

Trong phát triển dự án với Redis, việc tối ưu hóa và quản lý tốt Cluster sharding topology là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
03

Cơ chế quản lý bộ nhớ Eviction Policies trong Redis hoạt động như thế nào khi Redis hết dung lượng lưu trữ, và lập trình viên Junior cần chọn chính sách nào cho bài toán lưu trữ cache thông thường?

Junior

Bản chất cơ chế Eviction Policies

Khi Redis đạt đến giới hạn bộ nhớ được cấu hình thông qua tham số maxmemory, hệ thống sẽ kích hoạt các chính sách thu hồi bộ nhớ (Eviction Policies) để giải phóng không gian cho các lệnh ghi mới mà không gây lỗi Out Of Memory trực tiếp cho các thao tác ghi.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
04

Sự khác biệt cốt lõi giữa hai lệnh HGETALL và HSCAN trong Redis là gì, và tại sao việc sử dụng HGETALL trên một Hash có kích thước lớn lại gây rủi ro nghẽn hệ thống?

Junior

Sự khác biệt cốt lõi

  • HGETALL: Lấy toàn bộ danh sách tất cả các trường (field) và giá trị (value) của một Hash trong một lần thực thi duy nhất.
  • HSCAN: Lấy dữ liệu theo từng phân đoạn (chunk) nhỏ thông qua cơ chế con trỏ (cursor), cho phép duyệt qua tập dữ liệu lớn mà không làm gián đoạn luồng chính.

Rủi ro khi sử dụng HGETALL

Redis hoạt động dựa trên kiến trúc Single-threaded (luồng đơn) cho việc xử lý các lệnh. Khi một Hash chứa hàng trăm nghìn hoặc hàng triệu trường, lệnh HGETALL sẽ tiêu tốn thời gian xử lý lớn (độ phức tạp O(N) với N là số lượng field). Trong khoảng thời gian đó, Redis sẽ bị block hoàn toàn, không thể tiếp nhận bất kỳ request nào khác từ các client khác, dẫn đến hiện tượng nghẽn cổ chai (bottleneck) nghiêm trọng.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
05

Làm thế nào để xử lý tình huống mất dữ liệu khi Redis Server khởi động lại, và bạn phân biệt như thế nào giữa hai cơ chế RDB và AOF trong Redis?

Junior

Phân biệt RDB và AOF

Redis cung cấp hai cơ chế lưu trữ dữ liệu xuống ổ đĩa để đảm bảo tính bền vững (Persistence):

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
06

Khái niệm Pipeline trong Redis là gì, và việc sử dụng Redis Pipeline cải thiện hiệu năng ứng dụng như thế nào so với việc gửi từng lệnh riêng lẻ?

Junior

Khái niệm Redis Pipeline

Redis Pipeline là một kỹ thuật cho phép client gửi hàng loạt lệnh đến Redis server trong một lần kết nối mạng duy nhất mà không cần phải chờ đợi kết quả phản hồi của từng lệnh trước đó, sau đó nhận toàn bộ kết quả trả về trong một mảng duy nhất.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
07

Tại sao các lệnh có độ phức tạp O(N) như KEYS * hoặc FLUSHALL bị nghiêm cấm sử dụng trong môi trường Redis Production, và giải pháp thay thế an toàn là gì?

Junior

Nguyên nhân nghiêm cấm KEYS và FLUSHALL

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
08

Làm thế nào để kết nối và thao tác cơ bản với Redis từ ứng dụng Node.js hoặc Python, và lập trình viên Junior cần lưu ý gì về việc quản lý kết nối?

Junior

Để kết nối và thao tác với Redis từ ứng dụng backend (ví dụ như Node.js sử dụng thư viện ioredis hoặc Python sử dụng thư viện redis-py), lập trình viên cần khởi tạo một kết nối client trỏ tới địa chỉ host và port của Redis Server.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
09

Sự khác biệt cốt lõi giữa hai lệnh SET thông thường và lệnh SETNX trong Redis là gì, và nó thường được ứng dụng trong bài toán nào?

Junior

Trong Redis, lệnh SET dùng để gán giá trị cho một key bất kể key đó đã tồn tại hay chưa (ghi đè giá trị cũ). Trong khi đó, lệnh SETNX (SET if Not eXists) chỉ thực hiện việc gán giá trị nếu key đó chưa tồn tại trên hệ thống.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
10

Tại sao việc đặt tên key (Naming Convention) trong Redis lại cực kỳ quan trọng, và cấu trúc đặt tên nào được coi là chuẩn Best Practice trong doanh nghiệp?

Junior

Redis là cơ sở dữ liệu lưu trữ theo dạng Key-Value phẳng (Flat namespace), nghĩa là không có khái niệm bảng (table) hay thư mục con phân cấp tự nhiên như cơ sở dữ liệu quan hệ (SQL). Tất cả các key đều nằm chung một không gian tên toàn cục (Global namespace).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
11

Lệnh INCR và DECR trong Redis hoạt động như thế nào, và chúng giải quyết bài toán đồng thời (Concurrency) tốt hơn so với cơ sở dữ liệu quan hệ truyền thống ra sao?

Junior

Các lệnh INCR, INCRBY, DECR, DECRBY trong Redis dùng để tăng hoặc giảm giá trị số nguyên của một key đi 1 hoặc một số nguyên bất kỳ một cách tự động.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
12

Khi nào lập trình viên nên sử dụng cấu trúc dữ liệu Sorted Set (ZSET) trong Redis, và hãy nêu một bài toán thực tế điển hình?

Junior

Cấu trúc dữ liệu Sorted Set (ZSET) là một tập hợp các phần tử dạng chuỗi (Member), trong mỗi phần tử được gắn kèm một giá trị số thực gọi là Score. Các phần tử được tự động sắp xếp theo thứ tự tăng dần của Score.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
13

Redis là gì và tại sao người ta thường gọi Redis là một cơ sở dữ liệu in-memory key-value?

Junior

Bản chất của Redis

Redis viết tắt của Remote Dictionary Server, là một hệ thống mã nguồn mở hoạt động theo mô hình lưu trữ cấu trúc dữ liệu trong bộ nhớ (in-memory data structure store). Nó có thể được sử dụng như một cơ sở dữ liệu, bộ đệm (cache), và trình quản lý hàng đợi thông điệp (message broker).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
14

Trong Redis, cấu trúc dữ liệu String khác gì so với Hash và khi nào lập trình viên nên chọn Hash thay vì String?

Junior

Phân biệt String và Hash trong Redis

1. Redis String

  • Định nghĩa: Là cấu trúc dữ liệu cơ bản nhất trong Redis, lưu trữ một chuỗi dữ liệu nhị phân an toàn (binary-safe), có thể chứa văn bản, số nguyên, số thực hoặc hình ảnh (tối đa 512MB).
  • Trường hợp sử dụng: Thường dùng để lưu trữ các giá trị đơn lẻ như token xác thực, bộ đếm lượt truy cập, hoặc cấu hình dạng thô.

2. Redis Hash

  • Định nghĩa: Là tập hợp các cặp trường và giá trị (field-value pairs) nằm trong một key duy nhất. Ví dụ, một Hash đại diện cho một người dùng có thể chứa các trường như name, age, email.
  • Trường hợp sử dụng: Rất phù hợp để đại diện cho các đối tượng (objects) có nhiều thuộc tính.

Khi nào nên chọn Hash thay vì String?

  • Tiết kiệm bộ nhớ: Khi lưu trữ một đối tượng có nhiều thuộc tính (ví dụ thông tin người dùng: id, username, status), nếu dùng String, bạn có thể phải tạo nhiều key (user:1:name, user:1:email) hoặc serialize toàn bộ đối tượng thành một chuỗi JSON. Việc tạo nhiều key sẽ tốn kém chi phí bộ nhớ phụ cho cấu trúc quản lý key của Redis. Sử dụng Hash giúp gom nhóm các thuộc tính vào một key duy nhất, tối ưu hóa đáng kể dung lượng RAM.
  • Cập nhật một phần tử dễ dàng: Hash cho phép bạn đọc hoặc ghi một field cụ thể (ví dụ dùng lệnh HGET hoặc HSET) mà không cần phải đọc và giải mã (deserialize) toàn bộ đối tượng như khi lưu dưới dạng chuỗi JSON.

Ví dụ thực tế

Thay vì lưu JSON string: SET user:1000 '{"name":"Nguyen Van A","age":25}' Bạn nên dùng Hash: HSET user:1000 name "Nguyen Van A" age 25

15

Lệnh EXPIRE trong Redis hoạt động như thế nào và sự khác biệt giữa EXPIRE và TTL là gì?

Junior

Cơ chế hoạt động của lệnh EXPIRE

Lệnh EXPIRE được sử dụng để thiết lập thời gian sống (Time To Live - TTL) cho một key cụ thể tính bằng giây. Khi thời gian này kết thúc, key đó sẽ tự động bị xóa khỏi Redis.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học