Như đã giải thích trong StackExchange.Redis Basics documentation, bạn có thể kết nối với nhiều máy chủ Redis và StackExchange.Redis sẽ tự động xác định thiết lập chính/phụ. Trích dẫn phần có liên quan:StackExchange.Redis sử dụng nhiều điểm cuối và kết nối như thế nào?
Một kịch bản phức tạp hơn có thể liên quan đến thiết lập chính/phụ; cho việc sử dụng này, chỉ cần xác định tất cả các nút mong muốn tạo nên mà tầng redis logic (nó sẽ tự động xác định các bậc thầy):
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");
tôi thực hiện một thử nghiệm mà tôi đã gây ra một failover, như vậy mà các bậc thầy sẽ đi xuống một chút, khiến cho nô lệ cũ trở thành người chủ mới, và người chủ cũ trở thành nô lệ mới. Tôi nhận thấy rằng mặc dù sự thay đổi này, StackExchange.Redis tiếp tục gửi lệnh đến chủ cũ, khiến các thao tác ghi thất bại.
Các câu hỏi về các phần trên:
- như thế nào StackExchange.Redis quyết định thiết bị đầu cuối sử dụng không?
- Nên sử dụng nhiều điểm cuối (như trong ví dụ trên)?
Tôi cũng nhận thấy rằng đối với mỗi kết nối, StackExchange.Redis sẽ mở ra hai kết nối vật lý, một trong số đó là một số loại đăng ký. Điều này được sử dụng cho chính xác là gì? Nó được sử dụng bởi Sentinel trường hợp?
Cảm ơn bạn đã trả lời. Tôi không chắc chắn tôi làm theo ... những gì bạn có nghĩa là bằng các phương pháp thư viện để thay đổi chương trình phát sóng cấu hình chủ/thư viện cụ thể? Ngoài ra, khi tôi gây ra lỗi chuyển đổi master/slave, tôi thực sự đợi một vài giây và cố gắng gửi SET một lần nữa, nhiều lần, và nó luôn luôn gửi nó cho chủ cũ. – Gigi
@Gigi Tôi sẽ phải điều tra vấn đề 'SET'; mặt khác: 'IServer.MakeMaster (...)' –
@MarcGravell tham số 'server' mà bạn đề cập là gì? Tôi không thể tìm thấy nó ở loại ConfigurationOptions. –