बनाने के लिए मेरे पास एज़ूर रेडिस कैश से कनेक्ट करने के लिए कोड का निम्न भाग है।रेडिस सर्वर से कनेक्ट करना संभव नहीं था; एक डिस्कनेक्टेड मल्टीप्लेक्सर
public class CacheConnectionHelper
{
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
return ConnectionMultiplexer.Connect(SettingsHelper.AzureRedisCache);
});
public static ConnectionMultiplexer Connection
{
get
{
return lazyConnection.Value;
}
}
}
और मैं इसे इस तरह का उपयोग प्रतिदिन
public static List<Models.Module> GetModules()
{
IDatabase cache = CacheConnectionHelper.Connection.GetDatabase();
List<Models.Module> listOfModules = new List<Models.Module>();
listOfModules = (List<Models.Module>)cache.Get("ApplicationModules");
if (listOfModules == null)
{
listOfModules = dbApp.Modulos.ToList();
cache.Set("ApplicationModules", listOfModules, TimeSpan.FromMinutes(SettingsHelper.CacheModuleNames));
return listOfModules;
}
else {
return listOfModules;
}
}
हालांकि 1 या 2 बार मैं इस अपवाद:
Additional information: It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. UnableToResolvePhysicalConnection on PING
सवाल यह है कि मैं इस कोड refactor जाना कर सकते हैं कैश कनेक्शन विफल होने पर डेटाबेस में?
बिल्कुल सही देख सकते हैं ... लेकिन असफलता क्या है? यदि यह पहले नेटवर्क ब्लिप पर विफल रहता है तो हम इसे फिर से प्रयास करने के साथ ठीक हैं लेकिन अनिश्चित काल तक नहीं। क्या अतिरिक्त विकल्प हैं? Google ने मुझे यहां बताया। – Glenn
इसे मिला, यह कनेक्टरीट्री का कॉन्फ़िगरेशनऑप्शन है जो रीट्रीज़ की संख्या पर सेट है। सुनिश्चित नहीं है कि डिफ़ॉल्ट क्या सेट है। – Glenn
डिफ़ॉल्ट ConnectRetry के लिए 3 - https://stackexchange.github.io/StackExchange.Redis/Configuration.html – vshale