2011-01-31 21 views
7

Nó không rõ ràng với tôi từ documentation on replication cho dù SYNC command đang chặn.Có thêm một vấn đề nô lệ redis một cuộc gọi chặn để làm chủ?

Có vẻ như không nên (sau khi tất cả, quay lên một nô lệ mới sẽ dừng chủ từ yêu cầu phân phối), nhưng tôi muốn xác nhận điều đó.

Đối với ngữ cảnh, tôi đang xem thêm một nô lệ vào tổng thể lưu trữ khoảng 8GB dữ liệu không có đồng bộ hóa đĩa *.

* Trước đây, mất dữ liệu không phải là mối quan tâm. Chúng tôi đang thay đổi điều đó, do đó, nhân rộng và kiên trì đang được "quay trở lại" đến một mức độ.

Trả lời

18

máy chủ sẽ chỉ thực hiện BGSAVE trên yêu cầu SYNC từ bộ phận phụ, vì vậy nó không phải là hoạt động chặn.

Vì vậy, trình tự là:

  • nô lệ yêu cầu SYNC
  • chủ BGSAVE, nô lệ đợi
  • chủ BGSAVE kết thúc, dữ liệu số lượng lớn ban đầu (file .rdb) được chuyển giao cho nô lệ
  • tổng thể tích luỹ tất cả các khác biệt mới cho nô lệ
  • hoàn thành công việc gửi toàn bộ tệp rdb ban đầu đến slave
  • ma ster bắt đầu cho ăn nô lệ với bộ đệm tích lũy, và với bất kỳ thứ gì mới đến từ khách hàng, nếu chúng được viết.

Nó cũng hoạt động nếu chủ không được định cấu hình để lưu, đơn giản là nó sẽ tạo ra một .rdb chỉ dành cho bậc thầy < -> đồng bộ hóa nô lệ. Trong các trường hợp chính được cấu hình mà không có dòng "lưu" trong redis.conf, BGSAVE không được gọi tự động, nhưng vẫn có thể được gọi bởi người dùng nếu có nhu cầu lưu tệp .rdb.

+0

Làm cách nào để ngăn chặn một bgsave? Tôi muốn nhảy đến bước cuối cùng. Nói cách khác, tôi có cả hai ví dụ redis cùng, nô lệ của một trường hợp khác, mà tôi biết tôi không phải làm điều rdb SYNC. điều này có thể không? – wener

+0

Có một nhánh thử nghiệm thực hiện điều này thực sự, nếu bạn kiểm tra Github được gọi là "nosync" và được mã hóa với "không ổn định". – antirez

+0

Cảm ơn, tôi sẽ kiểm tra – wener

Các vấn đề liên quan