Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Redis超时错误_C#_Asp.net Core_Redis_Stackexchange.redis - Fatal编程技术网

C# Redis超时错误

C# Redis超时错误,c#,asp.net-core,redis,stackexchange.redis,C#,Asp.net Core,Redis,Stackexchange.redis,我有一个应用程序,它抛出了很多Redis超时错误 我在Startup.cs中配置缓存的方式如下: var redis = ConnectionMultiplexer.Connect(Configuration.GetValue<string>("RedisConnection")); services.AddDataProtection( options => { options.ApplicationDiscriminator = &q

我有一个应用程序,它抛出了很多Redis超时错误

我在Startup.cs中配置缓存的方式如下:

  var redis = ConnectionMultiplexer.Connect(Configuration.GetValue<string>("RedisConnection"));
  services.AddDataProtection(
      options => { options.ApplicationDiscriminator = "my-ap";}
      ).PersistKeysToRedis(redis, "my-ap-data-protection-keys");


  services.AddDistributedRedisCache(options =>
      {
          options.Configuration = Configuration.GetValue<string>("RedisConnection");
      });
 private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => { 
    return ConnectionMultiplexer.Connect("RedisConnection"); });

public static ConnectionMultiplexer Connection { get { return lazyConnection.Value; } }
var redis=ConnectionMultiplexer.Connect(Configuration.GetValue(“RedisConnection”); services.AddDataProtection( 选项=>{options.ApplicationDiscriminator=“my ap”;} ).PersistKeysRedis(redis,我的ap数据保护密钥); services.AddDistributedRedisCache(选项=> { options.Configuration=Configuration.GetValue(“重新连接”); }); 我正在经历的是使用Redis的最佳实践是这样的:

  var redis = ConnectionMultiplexer.Connect(Configuration.GetValue<string>("RedisConnection"));
  services.AddDataProtection(
      options => { options.ApplicationDiscriminator = "my-ap";}
      ).PersistKeysToRedis(redis, "my-ap-data-protection-keys");


  services.AddDistributedRedisCache(options =>
      {
          options.Configuration = Configuration.GetValue<string>("RedisConnection");
      });
 private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => { 
    return ConnectionMultiplexer.Connect("RedisConnection"); });

public static ConnectionMultiplexer Connection { get { return lazyConnection.Value; } }
private static Lazy lazyConnection=new Lazy(()=>{
返回ConnectionMultiplexer.Connect(“RedisConnection”);});
公共静态连接多路复用器连接{get{return lazyConnection.Value;}}
问题的第1部分:我不太清楚如何将其合并到分发密钥的代码中。我只是在我的启动类中添加一个静态方法吗


问题的第2部分:我正在使用Microsoft.Extensions.Caching.Redis 2.1.2.0版中的
AddDistributedRedisCache
扩展方法,我找不到使用上述推荐方法的区域

我有点困惑-您正在添加DistributedCache和多路复用器?您应该能够只使用AddDistributedCache设置,然后将IDistributedCache注入到其他类中……您的超时是多少?你会惊讶于云提供商的延迟有多高(而且很高)be@MarcGravell我如何知道超时是什么?@MarcGravell IIUC我没有在连接字符串上设置超时。这是默认值(我在这里的一些文档中发现是5000:)@MarcGravel看起来ut是超时值,因为我增加了超时值,它解决了大量的错误。谢谢你能把这个设为答案,这样我就可以标记它了吗