Redis


Dưới đây là lộ trình học Redis chuyên sâu theo hướng của Senior Developer, giúp bạn hiểu sâu về Redis và áp dụng hiệu quả trong hệ thống phân tán, microservices.


1. Cơ bản về Redis (2 - 3 ngày)

✅ Hiểu Redis là gì, tại sao Redis nhanh? ✅ Cài đặt Redis trên môi trường Local & Docker ✅ Cấu trúc dữ liệu chính của Redis:

  • String

  • List

  • Set

  • Sorted Set (ZSet)

  • Hash ✅ Các lệnh Redis cơ bản (SET, GET, INCR, EXPIRE, DEL, HSET, HGET...) ✅ TTL và cơ chế tự động hết hạn

Thực hành

  • Viết một ứng dụng Java Spring Boot kết nối Redis và thao tác với các kiểu dữ liệu trên.


2. Redis Nâng Cao - Cache Optimization (4 - 5 ngày)

Cache Strategies:

  • Cache Aside

  • Read Through

  • Write Through

  • Write Behind

  • Cache Invalidation ✅ Cache Eviction Policies (Chiến lược xoá dữ liệu trong Redis):

  • LRU (Least Recently Used)

  • LFU (Least Frequently Used)

  • TTL-based eviction ✅ Giải quyết các vấn đề phổ biến:

  • Cache Penetration (Xuyên thủng cache) và cách khắc phục

  • Cache Breakdown (Sập cache do key hết hạn cùng lúc)

  • Cache Avalanche (Lốc xoáy cache khi nhiều key hết hạn cùng lúc)

Thực hành

  • Cấu hình Redis Cache trong Spring Boot (@Cacheable, @CachePut, @CacheEvict).

  • Giải quyết vấn đề cache penetration bằng cách sử dụng bloom filter.

  • Sử dụng Lua script để implement một chiến lược cache nâng cao.


3. Redis Persistence & High Availability (5 - 6 ngày)

Cơ chế lưu trữ dữ liệu trong Redis

  • RDB (Redis Database Snapshot)

  • AOF (Append-Only File)

  • Hybrid Persistence ✅ Replication & High Availability

  • Master-Slave Replication

  • Sentinel (Tự động failover) ✅ Redis Cluster:

  • Hash Slot

  • Multi-node setup

  • Resharding và High Availability

Thực hành

  • Cấu hình Redis Sentinel để đảm bảo hệ thống tự động chuyển đổi master khi lỗi.

  • Thiết lập Redis Cluster với nhiều node trong Docker.


4. Redis for Distributed Systems (7 - 10 ngày)

Redis Message Queue (Pub/Sub, Stream, List as Queue)Distributed Lock with Redis (SETNX, Redlock Algorithm) ✅ Rate Limiting với RedisSession Management với RedisGeoSpatial Data trong Redis (Lưu vị trí, tìm kiếm theo khoảng cách) ✅ HyperLogLog để đếm số lượng lớn

Thực hành

  • Xây dựng Rate Limiting API Gateway bằng Redis.

  • Xây dựng Distributed Locking System với Redlock để tránh race condition.

  • Triển khai hệ thống thông báo real-time bằng Redis Pub/Sub.

  • Ứng dụng Redis GeoSpatial để tìm kiếm cửa hàng gần nhất.


5. Redis Performance Optimization (4 - 5 ngày)

Monitor & Debug Redis

  • Sử dụng INFO, MONITOR, SLOWLOGPerformance tuning

  • Cấu hình Redis với maxmemory, maxclients

  • Pipeline & Batching để tối ưu hiệu suất

  • Zero-copy I/O và lazy free ✅ Redis vs Other Databases (MongoDB, PostgreSQL, Cassandra)

Thực hành

  • Benchmark hiệu suất Redis với Apache JMeter.

  • Viết một API tối ưu tốc độ truy vấn dữ liệu với Redis Pipeline.


6. Tích hợp Redis vào hệ thống Microservices (7 - 10 ngày)

Redis trong hệ thống MicroservicesEvent-Driven Architecture với RedisSử dụng Redis như một Event StoreTriển khai Redis với Kubernetes

Thực hành

  • Tích hợp Redis với Spring Boot + Kafka trong hệ thống event-driven.

  • Deploy Redis trong Kubernetes với Helm.

  • Xây dựng Audit Logging System bằng Redis Streams.


7. Redis Security & Best Practices (3 - 4 ngày)

Bảo mật Redis

  • Authentication & Authorization (ACL, password)

  • TLS Encryption

  • IP Whitelist ✅ Redis Best Practices

  • Khi nào KHÔNG nên dùng Redis?

  • Tối ưu bộ nhớ và tránh memory leaks

  • Xây dựng graceful degradation với Redis

Thực hành

  • Cấu hình Redis với TLS encryption.

  • Tạo một hệ thống multi-tenant với Redis.

Last updated