Skip to content
VDS · Cơ sở dữ liệu

Redis: cache và hàng đợi

Cài đặt Redis trên VDS, mật khẩu và ràng buộc vào địa chỉ cục bộ, giới hạn bộ nhớ và chính sách loại bỏ, cùng sự khác biệt giữa cache và hàng đợi.

Cập nhật 23 tháng 8, 2026

Redis lưu dữ liệu trong bộ nhớ, đó là lý do nó được dùng để cache, session, bộ đếm và hàng đợi tác vụ. Trên VPS, nó hữu ích đúng chừng nào còn vừa bộ nhớ: working set lớn hơn bộ nhớ trống không còn là tăng tốc mà là nguyên nhân gây crash.

Cài đặt

apt update && apt install -y redis-server        # Debian, Ubuntu
dnf install -y redis                             # AlmaLinux, CentOS Stream
systemctl enable --now redis-server
redis-cli ping

Phản hồi PONG nghĩa là máy chủ đang chạy.

Cấu hình bắt buộc

Tệp /etc/redis/redis.conf:

bind 127.0.0.1
protected-mode yes
requirepass long-random-password
maxmemory 512mb
maxmemory-policy allkeys-lru
appendonly no
systemctl restart redis-server
redis-cli -a 'password' ping

Các trình quét tìm ra Redis không mật khẩu lộ ra internet trong vài phút và dùng nó để đào coin. Nếu ứng dụng của bạn nằm cùng máy, hãy giữ bind 127.0.0.1 và không mở cổng 6379 ra ngoài. Nếu cần truy cập từ bên ngoài, chỉ dùng SSH tunnel hoặc VPN.

Bộ nhớ và eviction

Đặt maxmemory một cách rõ ràng: nếu không, Redis sẽ phình lên cho đến khi hệ thống bắt đầu kill tiến trình. Cho nó một phần tư bộ nhớ của tier là hợp lý.

TierBộ nhớ máymaxmemory
VDS-12 GB256 MB
VDS-24 GB512 MB
VDS-38 GB1–2 GB
VDS-524 GB4–6 GB

Chính sách phụ thuộc vào vai trò:

  • cache — allkeys-lru, các key cũ bị loại bỏ âm thầm;
  • hàng đợi tác vụ — noeviction, mất một tác vụ là không thể chấp nhận, lỗi ghi vẫn tốt hơn.

Đừng trộn cache và hàng đợi trong cùng một database, chính vì mâu thuẫn này. Hãy tách chúng thành các số database khác nhau (SELECT 1) hoặc hai instance.

Lưu bền xuống đĩa

Mặc định, Redis định kỳ ghi snapshot vào dump.rdb. Với cache thuần túy thì đây là việc ghi đĩa không cần thiết — hãy tắt save. Với hàng đợi, hãy bật appendonly yes: như vậy tác vụ sẽ không bị mất sau khi máy khởi động lại.

Lưu ý rằng tốc độ ghi đĩa bị giới hạn bởi tier: 60 MB/s mỗi lõi, không thấp hơn 60 và không cao hơn 400 MB/s.

Giám sát

redis-cli -a 'password' info memory
redis-cli -a 'password' info stats
redis-cli -a 'password' --stat
redis-cli -a 'password' slowlog get 10

Chỉ số quan trọng là evicted_keys: tăng liên tục nghĩa là không đủ bộ nhớ và cache không mang lại hiệu quả.

Lỗi thường gặp

Triệu chứngNguyên nhân
NOAUTH Authentication requiredỨng dụng chưa được cấp mật khẩu
OOM command not allowedĐã đạt maxmemory với chính sách noeviction
DENIED Redis is running in protected modeTruy cập từ bên ngoài với bind 127.0.0.1 — đây là thiết kế cố ý
Dữ liệu biến mất sau khi khởi động lạiChưa bật lưu bền
Máy bắt đầu swapTổng maxmemory và các dịch vụ khác vượt quá bộ nhớ của tier

Đừng dùng KEYS * trên máy chủ production: lệnh này chặn Redis trong khi nó duyệt qua toàn bộ key. Hãy dùng SCAN để duyệt.