Đây là cách hoạt động của tính năng phân chia dữ liệu trong Redis Cluster:
Phân đoạn cụm Redis
Redis Cluster sử dụng cơ chế sharding tích hợp để tự động phân vùng dữ liệu trên nhiều nút Redis. Các khía cạnh chính của cách thức hoạt động này là:
1. Phân vùng không gian khóa: Toàn bộ không gian khóa trong Cụm Redis được chia thành 16.384 vùng băm. Các khe băm này chịu trách nhiệm phân phối dữ liệu trên toàn cụm.
2. Gán các vị trí băm: Mỗi nút Redis trong cụm được chỉ định một tập hợp con trong số 16.384 vị trí băm. Việc gán các vị trí băm cho các nút được thực hiện thông qua hàm băm.
3. Vị trí dữ liệu: Khi khách hàng muốn lưu trữ một cặp khóa-giá trị, khách hàng sẽ tính toán giá trị băm của khóa bằng cách sử dụng hàm băm được xác định trước. Giá trị băm này sau đó được ánh xạ tới một trong 16.384 vị trí băm. Dữ liệu sau đó được lưu trữ trên nút Redis sở hữu khe băm đó.
4. Sao chép: Đối với mỗi vùng băm, có một nút chính chịu trách nhiệm phục vụ các yêu cầu đọc/ghi. Ngoài ra, có một hoặc nhiều nút bản sao duy trì bản sao dữ liệu để có tính sẵn sàng cao.
5. Tự động phân chia lại: Khi các nút được thêm hoặc xóa khỏi cụm, việc gán vị trí băm sẽ tự động được cân bằng lại để đảm bảo phân phối dữ liệu và tải đồng đều trên toàn cụm.
Lợi ích của việc phân chia cụm Redis
1. Khả năng mở rộng: Bằng cách phân phối dữ liệu trên nhiều nút, Redis Cluster có thể mở rộng quy mô để xử lý lượng lớn dữ liệu và thông lượng cao.
2. Tính sẵn sàng cao: Việc sao chép các vị trí băm trên các nút chính và bản sao đảm bảo tính sẵn sàng cao vì khách hàng có thể tiếp tục truy cập dữ liệu ngay cả khi một số nút bị lỗi.
3. Quyền truy cập khách hàng minh bạch: Ánh xạ vùng băm được Redis Cluster xử lý một cách minh bạch, do đó khách hàng có thể truy cập dữ liệu mà không cần biết chi tiết về phân đoạn cơ bản.
4. Quản lý tự động: Redis Cluster tự động hóa việc quản lý phân đoạn, bao gồm cả việc tái cân bằng dữ liệu khi cụm phát triển hoặc thu hẹp.
Nhìn chung, kiến trúc sharding của Redis Cluster cho phép nó cung cấp kho lưu trữ dữ liệu phân tán có khả năng mở rộng cao, sẵn có và dễ quản lý, khiến nó rất phù hợp cho các ứng dụng có khối lượng dữ liệu lớn hoặc yêu cầu thông lượng cao.
Trích dẫn:[1] https://scalegrid.io/blog/intro-to-redis-shending/
[2] https://redis.io/redis-enterprise/technology/redis-enterprise-cluster-architecture/
[3] https://yandex.cloud/en/docs/managed-redis/concepts/sharding
[4] https://redisson.org/glossary/shending.html
[5] https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.NodeGroups.html