Đây là mẫu được nhóm Azure Redis Cache đề xuất:
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => {
return ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,abortConnect=false,ssl=true,password=...");
});
public static ConnectionMultiplexer Connection {
get {
return lazyConnection.Value;
}
}
Một vài điểm quan trọng:
- Nó sử dụng Lazy
để xử lý quá trình khởi tạo an toàn theo chuỗi - Nó đặt "abortConnect =false", có nghĩa là nếu nỗ lực kết nối ban đầu không thành công, ConnectionMultiplexer sẽ âm thầm thử lại trong nền thay vì đưa ra một ngoại lệ.
- Nó không kiểm tra thuộc tính IsConnected vì ConnectionMultiplexer sẽ tự động thử lại trong nền nếu kết nối bị ngắt.