Xả là gần như sao chép phản đối, mặc dù chúng là khái niệm trực giao và làm việc tốt với nhau.
Xả, còn được gọi là phân vùng, đang chia nhỏ dữ liệu theo khóa; Trong khi nhân rộng, cũng biết là phản chiếu, là sao chép tất cả dữ liệu.
Xả là hữu ích để tăng hiệu suất, giảm tải truy cập và bộ nhớ trên bất kỳ tài nguyên nào. Sao chép hữu ích cho khả năng đọc cao. Nếu bạn đọc từ nhiều bản sao, bạn cũng sẽ giảm tỷ lệ truy cập trên tất cả các tài nguyên, nhưng yêu cầu bộ nhớ cho tất cả các tài nguyên vẫn giữ nguyên. Cần lưu ý rằng, trong khi bạn có thể viết cho một nô lệ, nhân rộng chỉ là master-> slave. Vì vậy, bạn không thể mở rộng viết theo cách này.
Giả sử bạn có các bộ dữ liệu sau: [1: Apple], [2: Banana], [3: Cherry], [4: Durian] và chúng tôi có hai máy A và B. Với Sharding, chúng tôi có thể lưu trữ khóa 2,4 trên máy A; và phím 1,3 trên máy B. Với Nhân rộng, chúng tôi lưu trữ các khóa 1,2,3,4 trên máy A và 1,2,3,4 trên máy B.
Việc tích trữ thường được thực hiện bằng cách thực hiện băm nhất quán trên chìa khóa. Ví dụ trên được thực hiện với hàm băm sau đây (x) {return x% 2 == 0? A: B}.
Để kết hợp các khái niệm, Chúng tôi có thể nhân rộng từng phân đoạn. Trong các trường hợp trên, tất cả dữ liệu (2,4) của máy A có thể được sao chép trên máy C và tất cả dữ liệu (1,3) của máy B có thể được sao chép trên máy D.
Bất kỳ phím nào- giá trị lưu trữ (trong đó Redis chỉ là một ví dụ) hỗ trợ sharding, mặc dù một số chức năng cross-key sẽ không còn hoạt động. Redis hỗ trợ nhân rộng ra khỏi hộp.
mát mẻ. tôi nghĩ rằng câu trả lời không chỉ giới hạn trong redis – joetsuihk
Câu trả lời hay (nói chung), nhưng không thực sự trả lời câu hỏi imho :) –
Tôi nghĩ câu trả lời này cung cấp một phản hồi tốt cho những gì người hỏi hỏi. Rất đơn giản, nhưng giải thích đúng. +1 –