C# 将zip文件设置为redis缓存

C# 将zip文件设置为redis缓存,c#,azure,redis,stackexchange.redis,C#,Azure,Redis,Stackexchange.redis,我的问题是将zip文件保存并读取到位于onAzure的Redis缓存数据库中。我用StackExchange.Redis尝试了一些东西,但没有成功。你知道这方面的例子或解决方案吗 我的代码是这样的。对于这段代码,我得到了超时错误 ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("filecache.redis.cache.windows.net:6380,password=123,ssl=True,abortCon

我的问题是将zip文件保存并读取到位于onAzure的Redis缓存数据库中。我用StackExchange.Redis尝试了一些东西,但没有成功。你知道这方面的例子或解决方案吗

我的代码是这样的。对于这段代码,我得到了超时错误

ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("filecache.redis.cache.windows.net:6380,password=123,ssl=True,abortConnect=False");          
IDatabase cache = connection.GetDatabase();

byte[] fileBytes = File.ReadAllBytes(@"c:\test.zip");
var str = Convert.ToBase64String(fileBytes);
cache.StringSet("f1", str);
var key1 = cache.StringGet("f1");
这就是错误:

发生StackExchange.Redis.RedisTimeoutException异常 HResult=0x80131505 Message=Timeout执行集合f1,inst:0,mgr:Inactive,err:never,queue:2,qu:1,qs:1,qc:0,wr:1,wq:1,in:0,ar:0,clientName:NLBRLT-MCOPUR,serverEndpoint:Unspecified/BatchReportCache.redi.cache.windows.net:6380,keyHashSlot:2046,IOCP:(忙=0,空闲=1000,最小=4,最大=1000),WORKER:(忙=0,空闲=2047,最小=4,最大=2047)(请参阅本文,了解一些可能导致超时的常见客户端问题:) Source=StackExchange.Redis


首先,我不建议你上传大文件到redis缓存

出现此错误的原因是您将大文件上载到redis缓存。上载文件和满足连接限制需要花费大量时间

Redis是为小型缓存而不是大型文件设计的,如果你想上传大型文件,请使用azure存储。更多详细信息,你可以参考此

如果仍要将大文件上载到它,可以更改连接字符串中的synctimeout

将其更改为:

ynctimeout=100000(this value is about when your request will time out),{redisname}.redis.cache.windows.net:6380,password={key},ssl=True,abortConnect=False
测试演示在旁边

将zip上传到redis几乎需要20秒


不确定您的确切意思。您正在值中存储二进制内容?如果是,请编辑您的问题以显示您正在使用的代码以及遇到的问题。现在,您的问题显示为“请为我编写代码”@DavidMakogon我添加了我的代码。你现在可以检查它。当我增加连接字符串中的SyncTimeout值时,它对我有效。谢谢。