inflearn logo

Năm 2026! Hướng dẫn thực hành Redis dành cho nhà phát triển Backend: Từ cơ bản đến các mô hình thực tế

Nhiều nhà phát triển backend đang sử dụng Redis, nhưng trên thực tế, họ thường chỉ sử dụng nó như một máy chủ bộ nhớ đệm (cache server) đơn giản. Có nhiều trường hợp dù biết các kiểu dữ liệu của Redis nhưng lại không biết cách áp dụng vào thực tế, hoặc thiếu kinh nghiệm trực tiếp triển khai các mô hình thực chiến như Khóa phân tán (Distributed Lock), Giới hạn tốc độ (Rate Limiting), hoặc không hiểu Redis dưới góc độ kiến trúc backend. Bản thân tôi cũng từng trăn trở về cách tận dụng Redis trong môi trường lưu lượng truy cập lớn khi phát triển các dịch vụ thực tế. Bởi vì việc chỉ đơn thuần biết các câu lệnh và việc giải quyết các vấn đề của dịch vụ bằng Redis là hai câu chuyện hoàn toàn khác nhau. Khóa học này bắt đầu từ các khái niệm cơ bản và cấu trúc dữ liệu của Redis, sau đó học cách triển khai từng bước các mô hình cốt lõi được sử dụng trong các dịch vụ backend thực tế. Đặc biệt, bạn sẽ học cách giải quyết các vấn đề thực tế sau bằng Redis: Chiến lược bộ nhớ đệm (Cache-Aside) để giảm tải cho máy chủ, Lưu trữ phiên phân tán (Session Store) để chia sẻ trạng thái đăng nhập, Khóa phân tán (Distributed Lock) để giải quyết vấn đề tranh chấp dữ liệu (concurrency), Giới hạn tốc độ (Rate Limiting) để ngăn chặn quá tải API, và Hệ thống bảng xếp hạng thời gian thực (Leaderboard) cho lượng người dùng lớn. Tất cả các bài thực hành đều được tiến hành trong môi trường máy chủ API thực tế dựa trên Python FastAPI. Thay vì chỉ học các câu lệnh CLI đơn thuần, bạn sẽ hiểu được Redis được sử dụng như thế nào trong hệ thống backend thông qua việc trực tiếp triển khai. Thông qua khóa học này, bạn sẽ có thể tận dụng Redis không chỉ như một bộ nhớ đệm đơn thuần mà còn là một công cụ cốt lõi để thiết kế kiến trúc backend.

(5.0) 14 đánh giá

210 học viên

Độ khó Nhập môn

Thời gian Không giới hạn

Architecture
Architecture
Redis
Redis
FastAPI
FastAPI
Architecture
Architecture
Redis
Redis
FastAPI
FastAPI

Tin tức

4 bài viết

  • codingpe님의 프로필 이미지

    Xin chào các bạn học viên! 😊

    "Phần 7. [Appendix] Bonus Track" đã được bổ sung thêm một bài học mới! 🎉

    (Bài học mới) [Kiểu dữ liệu đặc biệt]Redis GEO: Tìm kiếm vị trí siêu tốc


    Nội dung này đề cập đến Redis GEO, cốt lõi của các dịch vụ dựa trên vị trí như ứng dụng giao hàng và tìm kiếm xung quanh.

    Hãy học cách triển khai tính năng "tìm kiếm quanh đây" chỉ với Redis mà không cần DB không gian riêng biệt.

    Nội dung học tập:

    • Khái niệm và đặc điểm của Redis GEO

    • Nguyên lý Geohash và cấu trúc bên trong Redis

    • Thực hành các câu lệnh GEO cốt lõi và cách sử dụng như GEOADD, GEODIST, GEOSEARCH

    • Đưa ra mục đích sử dụng, hạn chế của Redis GEO và kiến trúc đề xuất trong thực tế

    Hiện tại, bạn có thể học nội dung này tại 'Phần 7.[Appendix] Bonus Track'.

    Trong tương lai, nếu các bài giảng về các loại dữ liệu đặc biệt khác như Bitmap, HyperLogLog, Bloom Filter được thêm vào, tôi dự định sẽ tạo một phần riêng biệt có tên là 'Loại dữ liệu đặc biệt'.

    Cảm ơn bạn.

    0
  • codingpe님의 프로필 이미지

    Đã chỉnh sửa

    Xin chào các bạn học viên! 😊

    Cách đây không lâu, tôi đã đưa ra thông báo về 'Những lưu ý khi kiểm tra trong môi trường IP công cộng'.

    Nội dung đó là hướng dẫn về việc thiết lập mật khẩu và liên kết IP khi tạo container Redis, trong trường hợp môi trường thử nghiệm là máy tính có thể truy cập từ bên ngoài (như IP công cộng).

     

    Tuy nhiên, ngay cả trong môi trường IP công cộng, 127.0.0.1nếu bạn đã giới hạn IP bằng địa chỉ này, thì không cần thiết phải thiết lập mật khẩu cũng được.

     

    Nếu thiết lập mật khẩu, bạn sẽ cần phải xác thực liên tục trong quá trình thực hành sau đó, điều này có thể gây bất tiện cho luồng học tập.

     

    Nếu bạn đã thiết lập mật khẩu, nếu có thể, tôi khuyên bạn nên xóa container hiện tại và tạo lại nó như bên dưới (chỉ chỉ định IP).

    docker rm -f my-redis
    docker run -d --name my-redis -p 127.0.0.1:6379:6379 redis

     

    Chúng tôi xin lỗi vì sự bất tiện trong quá trình học tập của bạn.


    Dưới đây là hướng dẫn về những phần cần nhập mật khẩu trong các bài thực hành nếu bạn tiếp tục sử dụng mật khẩu.

     

    21. Redis Stack: Lưu trữ JSON và trải nghiệm tìm kiếm tốc độ cao (FullText Search)

    • Khi thêm Redis vào Redis Insight, bạn cần phải nhập mật khẩu.

     

    24. Giao dịch và Lập trình kịch bản: Lua Script và Redis Functions

    • Lệnh tải hàm Redis Functions có chỉ định mật khẩu

      # Trường hợp Redis có thiết lập mật khẩu
      docker exec -i my-redis redis-cli -a <mật_khẩu> -x FUNCTION LOAD REPLACE < coupon_logic.lua

     

    Toàn bộ Phần 5. [Pattern] Triển khai các mẫu ứng dụng thực tế trong Backend (với FastAPI)

    • Chỉ định tài khoản (default) và mật khẩu cho tất cả các mã tạo connection pool kết nối với Redis trong FastAPI

      @asynccontextmanager
      async def lifespan(app: FastAPI):
          app.state.redis = redis.from_url("redis://localhost:6379/0", decode_responses=True)
      
          # Trường hợp Redis có thiết lập mật khẩu
          # app.state.redis = redis.from_url("redis://default:<mật_khẩu>@localhost:6379/0", decode_responses=True)
      
          print("✅ Kết nối Redis thành công!")
          
          yield
          
          await app.state.redis.aclose()
          print("❌ Đã ngắt kết nối Redis!")

     

    0
  • codingpe님의 프로필 이미지

    Chào mọi người! 😊

    "Phần 6. [Ops] Vận hành và ứng phó sự cố Redis" đã được thêm một bài học mới..

    (Bài học mới) Xây dựng giám sát thực tế: Thực hành liên kết Prometheus + Grafana


    Việc giám sát trạng thái Redis bằng các lệnh như INFO, SLOWLOG thông qua CLI có những hạn chế trong thực tế, vì nó chỉ cho phép xem trạng thái tại thời điểm hiện tại dưới dạng văn bản trên bảng điều khiển.

    Vì vậy, tôi đã bao gồm một phần thực hành tự thiết lập môi trường giám sát bằng sự kết hợp giữa Prometheus (Thu thập + DB chuỗi thời gian) + Grafana (Trực quan hóa), vốn được coi là tiêu chuẩn gần như bắt buộc trong việc xây dựng hệ thống giám sát tại các môi trường thực tế, sau đó tự tạo lưu lượng truy cập giả lập vào Redis để kiểm tra và phân tích các chỉ số khác nhau trên bảng điều khiển trực quan.

     

    Quá trình thực hành được thiết kế để bạn có thể dễ dàng làm theo, đồng thời đây cũng là sự kết hợp các mã nguồn mở được sử dụng rộng rãi trong thực tế, vì vậy hy vọng bạn sẽ tham khảo kỹ và áp dụng vào công việc thực tiễn của mình.

    Cảm ơn bạn.

     

    1
  • codingpe님의 프로필 이미지

    Đã chỉnh sửa

    Chào các bạn học viên! 😊

    Nếu môi trường thử nghiệm của bạn là máy tính có thể truy cập từ bên ngoài (IP công cộng, v.v.), vui lòng tham khảo nội dung dưới đây để chạy Redis một cách an toàn.

    Câu lệnh thực thi cơ bản.

    docker run --name my-redis -p 6379:6379 -d redis

    Thiết lập trên là thiết lập nguy hiểm có thể khiến Redis bị lộ ra ngoài internet trong môi trường IP công cộng.

     

    👉Trong trường hợp này, nhất định phải thực hiện như sau.(Khuyến nghị)

    docker run -d --name my-redis -p 127.0.0.1:6379:6379 redis
    • 127.0.0.1 → Chặn truy cập từ bên ngoài (Quan trọng nhất)

     

    👉 Nếu bạn muốn tăng cường bảo mật hơn nữa, bạn có thể thiết lập mật khẩu như bên dưới. (Tùy chọn)

    docker run -d --name my-redis -p 127.0.0.1:6379:6379 redis redis-server --requirepass "mật_khẩu"
    
    • requirepass → Ngăn chặn truy cập không xác thực (thiết lập mật khẩu)

      • requirepass không phải là cài đặt bắt buộc, và bạn có thể bỏ qua trong môi trường thử nghiệm.

      • Tuy nhiên, nếu bạn muốn tăng cường bảo mật hơn thì có thể thiết lập, và trong trường hợp này sau đó bạn phải sử dụng mật khẩu cho tất cả các lần thực hành Redis CLI và mã nguồn.

     

    Cách kết nối sau khi thiết lập mật khẩu

    Nếu bạn sử dụng tùy chọn requirepass, bạn phải thực hiện lệnh dưới đây sau khi truy cập Redis CLI. option, you must execute the following command after connecting to the Redis CLI.

    127.0.0.1:6379> AUTH mật_khẩu

    (Bổ sung ngày 19.03.2026)

    Chào các bạn học viên 😊

    Nếu bạn đã thiết lập mật khẩu cho Redis và tạo container như hướng dẫn trên, bạn phải nhập mật khẩu đã thiết lập khi sử dụng Redis Insight thì mới có thể kết nối được.

     

    Redis Insight được
    đề cập trong phần 'Phần 4. [Advanced] Chuyên sâu về Redis và các xu hướng mới nhất',
    bài 'Redis Stack: Lưu trữ JSON và trải nghiệm tìm kiếm tốc độ cao (FullText Search)'.

     

    (Đường dẫn thiết lập) Connect existin databas (hoặc Add Redis database) -> Connection settings

    image.png

     

    image.pngimage.png

     

    0

1.851.404 ₫