Redis Phân tán: Khóa phân tán và Kiến trúc cụm

Trong phần trước, chúng ta đã khái quát các khía cạnh nền tảng của Redis — từ bối cảnh ứng dụng, cơ chế I/O đa路 (multiplexing), cấu trúc dữ liệu cốt lõi đến các chiến lược lưu trữ bền vững. Phần này sẽ đi sâu vào hai chủ đề thực tiễn quan trọng trong kiến trúc hệ thống hiện đại: khóa phân tán và cụm Redis (Redis Cluster), thông qua một tình h ...

Đăng vào ngày 9 tháng 6 lúc 22:44

Thiết kế và Xây dựng Hệ thống Giao tiếp Cộng đồng Dựa trên Vue và SpringBoot

Lựa chọn Công nghệ và Thiết kế Kiến trúc Hệ thống sử dụng kiến trúc tách biệt giữa frontend và backend. Phía frontend được xây dựng bằng Vue.js kết hợp Element UI để tạo giao diện đáp ứng, trong khi phía backend sử dụng SpringBoot 2.7.x với MyBatis-Plus để triển khai RESTful API. Cơ sở dữ liệu sử dụng MySQL 8.0, bộ nhớ đệm sử dụng Redis, và lư ...

Đăng vào ngày 9 tháng 6 lúc 21:09

Tích hợp Redis cho Quản lý Phiên và Khóa Phân tán trong .NET Core

Redis được sử dụng để quản lý phiên đăng nhập (ví dụ: hết hạn sau 20 phút) và giải quyết vấn đề tranh chấp tài nguyên trong các hệ thống phân tán như e-commerce. Redis hoạt động hiệu quả nhờ cơ chế đơn luồng I/O đa kênh. Xử lý tranh chấp tài nguyên Trong môi trường đa luồng, việc truy cập đồng thời vào tài nguyên dùng chung có thể gây ra xung ...

Đăng vào ngày 8 tháng 6 lúc 02:51

Triển Khóa Phân Tán Dựa Trên Redis

Phương Pháp 1: Sử Dụng Thư Viện Redisson 1. Cài Đặt Redis Để sử dụng dịch vụ khóa của Redisson, phiên bản Redis của bạn phải cao hơn 2.6. Tham khảo hướng dẫn cài đặt Redis để biết thêm chi tiết. 2. Thêm Thư Viện Redisson Thêm dependency Redisson vào file pom.xml: <dependency> <groupId>org.redisson</groupId> <ar ...

Đăng vào ngày 7 tháng 6 lúc 19:29

Sự khác biệt giữa sync() và syncAndReturnAll() trong ShardedJedisPipeline

Giải thích từ tài liệu chính thức Đồng bộ hóa pipeline bằng cách đọc tất cả các phản hồi. Hoạt động này sẽ đóng pipeline. Để lấy giá trị trả về từ các lệnh pipeline, hãy bắt các đối tượng Response khác nhau đã thực thi. Đồng bộ hóa pipeline bằng cách đọc tất cả các phản hồi. Hoạt động này sẽ đóng pipeline. Cố gắng tránh sử dụng phiên bản này và ...

Đăng vào ngày 7 tháng 6 lúc 04:00

Triển Khai Redis Cluster High Availability với Docker Compose

Để đạt được tính sẵn sàng cao và khả năng mở rộng trong Redis, chế độ cụm (Redis Cluster) là một lựa chọn lý tưởng. Tuy nhiên, việc thiết lập một cụm Redis yêu cầu tuân thủ các quy tắc về số lượng nút tối thiểu. Cụ thể, Redis Cluster cần ít nhất 3 nút master để hoạt động ổn định. Để đảm bảo khả năng chịu lỗi, mỗi master thường đi kèm với một ho ...

Đăng vào ngày 6 tháng 6 lúc 03:38

Cây tiền tố trong Redis: Từ Trie đến Rax Tree

Các cấu trúc như trie, radix tree và rax tree đều là những biến thể của cây tiền tố (prefix tree), được thiết kế để tối ưu hóa hiệu suất truy vấn và tiết kiệm bộ nhớ theo từng giai đoạn phát triển. Trie truyền thống Mỗi nút trong trie chỉ lưu một ký tự duy nhất, toàn bộ khóa được tạo thành bởi chuỗi đường đi từ gốc đến lá. Độ phức tạp tìm kiếm ...

Đăng vào ngày 4 tháng 6 lúc 18:11

Khóa Phân Tán Giải Quyết Vấn Đề Một Người Một Đơn Hàng

Hạn chế của khóa đồng bộ hóa (synchronized) trong môi trường phân tán ======================================== Khóa đồng bộ hóa là khóa tại JVM Khi có hai luồng cùng truy cập vào khối được khóa, khóa đồng bộ hóa này sẽ trở nên vô hiệu. Điều này xảy ra vì synchronized là khóa cục bộ, chỉ có khả năng đồng bộ hóa ở cấp độ luồng, mỗi JVM đều có m ...

Đăng vào ngày 3 tháng 6 lúc 22:09

Cấu trúc Hash trong Redis: Cơ chế hoạt động và tối ưu cho hệ thống tải cao

Cơ chế lưu trữ và chọn mã hóa động Redis Hash không sử dụng một cấu trúc duy nhất để lưu trữ tất cả các trường. Thay vào đó, engine sẽ tự động chuyển đổi giữa ziplist và hashtable dựa trên ngưỡng cấu hình. Khi số lượng trường nhỏ và giá trị có độ dài giới hạn, Redis ưu tiên ziplist để giảm thiểu chi phí con trỏ và overhead của node. Khi vượt qu ...

Đăng vào ngày 3 tháng 6 lúc 18:24

Kiến trúc và Phương thức Triển khai Khóa Phân tán

Tính cấp thiết của Khóa Phân tán Trong các kiến trúc hệ thống hiện đại, nơi ứng dụng được phân tán trên nhiều máy chủ, việc đồng bộ hóa tài nguyên dùng chung là một thách thức lớn. Khóa phân tán (Distributed Lock) ra đời để giải quyết vấn đề điều kiện tranh chấp (race condition), đảm bảo rằng một phương thức hoặc đoạn mã quan trọng chỉ được th ...

Đăng vào ngày 3 tháng 6 lúc 01:47