Dưới đây là cách mà Data Sharding hoạt động trong Cụm Redis:
Redis Cluster Sharding
Redis Cluster sử dụng cơ chế chia nhỏ 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 của nó:
1. Các khe hàm băm này chịu trách nhiệm phân phối dữ liệu trên cụm.
2. Gán các khe hàm băm: Mỗi nút redis trong cụm được gán một tập hợp con của các khe cắm băm 16.384. Việc gán các khe 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 giá trị khóa, máy khách tính toán giá trị băm của khóa bằ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 khe cắm băm. Dữ liệu sau đó được lưu trữ trên nút Redis sở hữu vị trí băm đó.
4. Sao chép: Đối với mỗi khe 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ì một bản sao của dữ liệu để có tính khả dụng cao.
5. Tự động sắp xếp lại: Khi các nút được thêm hoặc xóa khỏi cụm, các phân công khe hàm băm được tự động cân bằng để đảm bảo phân phối dữ liệu chẵn và tải qua cụm.
Lợi ích của Sharding Cụm Redis
1. Khả năng mở rộng: Bằng cách phân phối dữ liệu qua nhiều nút, cụm Redis có thể mở rộng để xử lý một lượng lớn dữ liệu và thông lượng cao.
2. Tính khả dụng cao: Việc sao chép các khe băm trên các nút chính và bản sao đảm bảo tính khả dụ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. Truy cập máy khách trong suốt: Ánh xạ khe băm được xử lý minh bạch bởi cụm Redis, để khách hàng có thể truy cập dữ liệu mà không cần biết chi tiết về việc chia nhỏ cơ bản.
4. Quản lý tự động: Cụm Redis tự động hóa việc quản lý Sharding, bao gồm cân bằng lại dữ liệu khi cụm phát triển hoặc co lại.
Nhìn chung, kiến trúc Sharding của Cụm Redis cho phép nó cung cấp một kho lưu trữ dữ liệu phân tán có thể mở rộng, có sẵn cao và dễ quản lý, giúp nó phù hợp với 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-sharding/
.
[3] https://yandex.cloud/en/docs/managed-redis/concepts/sharding
[4] https://redisson.org/glossary/sharding.html
[5] https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.NodeGroups.html