我们已经使用StackExchangeRedis.Net客户端几个月没有问题。我们的日志表明StringSet最近在一个小时内返回了数千次错误,但它再次按预期工作。我在任何地方都找不到FALSE的含义。我假设这意味着该值未放入缓存中,但如果这是正确的,我怎么知道为什么?客户端没有抛出异常。谁能告诉我描述返回值的API规范以及如何解决问题?如果重要的话,我们将在Azure中与Redis竞争。result=cache.StringSet(fullKey,value,GetCacheTime(cacheType));if(!result){if(_logger!=null){_logger.
最初我试图将一些项目集合插入到2个redis集合中(也许这根本不是个好主意,但是......)。我尝试一次添加的条目数:750+目前,我在尝试使用StackExchange.redis客户端执行此操作时收到超时异常,有趣的是我能够使用“旧版”booksleeve完成类似操作我之前调查过的客户。所以,我肯定在某些地方错了(甚至可能在我最初的bookSleeve实现中),只是想找出到底错在哪里。以下是我与redis客户端一起使用的代码示例:书套:using(vartran=connection.CreateTransaction()){TasklastOpTask=null;tran.Su
我正在将ConnectionMultiplexer静态对象存储在ASP.NETMVC网站中,速度达到~500req/sec,这会触发RedisLabs上的Redis实例。偶尔我会看到错误提示SocketFailureonEVAL以及RedisLabs仪表板上的连接数增加。我应该处理旧的ConnectionMultiplexer实例并重新创建新实例还是在出现这些异常后尝试手动重新连接? 最佳答案 系统应该尝试自动重新连接。它不做的是重试您的命令,因为它无法知道在服务器上完成了什么和没有完成什么(因为:套接字失败;就其所知,“ok”响应
我想用StackExchange.Redis做一个基本的观察。如果在交易过程中更改了key,则失败。StackExchange.Redis已将其很好地抽象为“条件”api,它支持“等于”和“存在”的概念。这真的很好,但我只想做一些像“不变”这样的事情。我可能会遗漏一些东西,但目前我还不清楚该怎么做。是否可以这样做:vartransaction=redis.CreateTransaction();transaction.AddCondition(Condition.StringUnchanged("key"));//theAPIherecouldmaybebesimplifiedvarv
我正在使用StackExchange.Redis使用主/从和哨兵设置在Redis上进行概念验证设置以实现高可用性,但在使用StackExchange.Redis时遇到了一些问题。我已经成功地使用最新的Redis服务器设置了3个Ubuntu虚拟机,一个服务器是带有Sentinel的主服务器,一个是带有Sentinel的从服务器,另一个是纯Sentinel。通过使用CLI,我可以看到从主服务器到从服务器的复制工作正常,当我停止主服务器(sudoservicesredis_6379stop)时,从服务器被提升为主服务器。但是,当尝试使用StackExchange.RedisConnectio
基本上,我有一个"DON'TDOTHIS"哨兵场景。因为Sentinel在这种情况下不安全,所以我实现了以下内容varmain="192.168.XXX.YY:6379,abortConnect=false";varbackup="192.168.XXX.YY:6379,abortConnect=false";IConnectionMultiplexerredis=ConnectionMultiplexer.Connect(main);redis.ConnectionFailed+=(src,args)=>{if((srcasConnectionMultiplexer).Configu
我最近将一个提供数据源和动态生成图像(6krpm吞吐量)的MVC应用程序从v3.9.67ServiceStack.Redis客户端切换到最新的StackExchange.Redis客户端(v1.0.450),我发现速度变慢了性能和一些新的异常。我们的Redis实例是S4级别(13GB),CPU显示相当恒定的45%左右,网络带宽似乎相当低。我不完全确定如何解释我们的Azure门户中的获取/设置图,但它向我们展示了大约100万获取和10万个设置(看起来这可能以5分钟为增量)。客户端库切换很简单,我们仍在使用v3.9ServiceStackJSON序列化程序,因此客户端库是唯一需要更改的部分
我在C#中使用stackexchange.redisSDK,并希望扫描我的哈希集。我希望SDK作为redis客户端执行(当我执行“hscanmyKey0”时,它将返回几个键值对,以及一个我将用于下一次扫描的光标)。但是,当我使用stackexchange.redisSDK实现“hashscan”方法时,如下所示:redisCache.HashScan(myKey,pageSize:10,cursor:0)它会返回“myKey”中的所有字段,里面有2000个键值对。我怎样才能让它一次返回几个结果?Cause以后“myKey”里有几百万个字段,如果一次全部返回,会很费内存,会不会阻塞在线服
我们正在使用Stackexchange客户端连接到Redis。Redis有方法IDatabase.KeyDeleteAsync并返回bool值。该方法在哪些场景下会返回false? 最佳答案 如果key先前不存在(当DEL命令返回0时),它将返回false。例如:varctx=ConnectionMultiplexer.Connect("localhost:6379");vardb=ctx.GetDatabase();db.StringSet("key","value");var@true=db.KeyDelete("key");v
我在写入Redis集群时遇到问题。将其作为配置:staticreadonlyIEnumerableEndpoints=new[]{EndPointCollection.TryParse("10.5.2.146:7000"),EndPointCollection.TryParse("10.5.2.146:7001"),EndPointCollection.TryParse("10.5.2.146:7002"),};publicstaticConnectionMultiplexerBuild(){varopt=newConfigurationOptions{AllowAdmin=true}