重新启动后连接到Redis缓存失败-Azure
我们正在使用以下代码连接到缓存(内存和Redis中):重新启动后连接到Redis缓存失败-Azure,azure,redis,azure-redis-cache,redis-cache,cachemanager,Azure,Redis,Azure Redis Cache,Redis Cache,Cachemanager,我们正在使用以下代码连接到缓存(内存和Redis中): 设置 .WithSystemRuntimeCacheHandle() .WithExpiration(CacheManager.Core.ExpirationMode.Absolute,defaultExpiryTime) .及 .WithRedisConfiguration(CacheManagerDisconfigurationKey,connectionString) .WithMaxRetries(3) .WithRetryTim
设置
.WithSystemRuntimeCacheHandle()
.WithExpiration(CacheManager.Core.ExpirationMode.Absolute,defaultExpiryTime)
.及
.WithRedisConfiguration(CacheManagerDisconfigurationKey,connectionString)
.WithMaxRetries(3)
.WithRetryTimeout(100)
.WithJsonSerializer()
.带重新背板(CacheManagerDisconfigurationKey)
.WithRedisCacheHandle(CacheManagerDisconfigurationKey,true)
.WithExpiration(CacheManager.Core.ExpirationMode.Absolute,defaultExpiryTime);
它工作正常,但有时机器会重新启动(由我们托管它的Azure自动启动),重启后与Redis的连接失败,出现以下异常:
连接到“{Connection string}”失败。
位于CacheManager.Core.BaseCacheManager`1..ctor(字符串名称,ICAChemManagerConfiguration配置)
位于CacheManager.Core.BaseCacheManager`1..ctor(ICAChemManagerConfiguration配置)
在CacheManager.Core.CacheFactory.Build[TCacheValue](字符串cacheName,操作`1设置)
在CacheManager.Core.CacheFactory.Build上(操作'1设置)
根据redisfaq()部分:“为什么我的客户端与缓存断开了连接?”这可能发生在重新部署之后
问题是
- 重新部署后是否有任何机制来恢复连接
- 我们初始化连接的方式有问题吗
在本例中,我将RetryTimeout视为100。如果这是连接超时,请检查是否以毫秒为单位。100毫秒太低了。你可能想让它更像10秒钟(记住这是一次性的,所以你想给它时间来连接) 听起来是个好主意。但即使是低超时连接也应该在一段时间后恢复。但在我们的情况下,它永远不会恢复。你对此有什么解释吗?你在用信号机吗?如果没有,您正在使用什么技术?信号器存在此处描述的已知问题:。此外,请确保您没有使用Redis的基本SKU-这是一个节点,如果操作系统得到修补,则在修补完成之前无法访问。在应用程序启动时,如果Redis不可用,CacheManager将引发该异常。不过,您可以增加connectionTimeout属性,这可能会有所帮助。您可以手动重试初始化几次。。。启动后,连接(如果建立一次)应在Redis服务器停机后自动恢复。。。