jjzjj

StackExchange

全部标签

Redis StackExchange 客户端 - 频繁接收 "Timeout exceptions", "Redis connection exception", "No connection available to service"

我经常遇到下面提到的错误,项目中使用的dll版本是-1.0.488.0System.TimeoutException:执行GET超时StackExchange.Redis.RedisConnectionException:没有连接可用于服务此操作:GET没有可用于服务此操作的连接:EXISTS谁能帮我弄清楚问题出在哪里?还在StackExchange的Github存储库上针对相同问题创建了一个问题IssuecreatedonGithubforthesame 最佳答案 您的连接似乎中断了。当它发生时,任何已经发送到Redis的命令都会

c# - StackExchange.Redis 发送结构

我是Redis的新手,我想知道如何使用StackExchange.Redis发送class或struct.所以让我们假设我想写varredis=ConnectionMultiplexer.Connect("localhost");vardb=redis.GetDatabase();db.StringSet(key,value);这实际上只有在我的值是原始值时才有可能。那么有没有其他方法可以在不将复杂类型序列化为json的情况下实现发送复杂类型呢? 最佳答案 由于Redis不知道您的class或struct,因此您需要定义如何存储它。

c# - 如何使用 CacheManager 设置 Redis 服务器池大小?

[C#]如何使用CacheManager设置RedisServer池大小?高并发时出现错误:没有可用连接来服务此操作:HMGET,如何设置连接池大小?Noconnectionisavailabletoservicethisoperation:HMGETUatStackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Messagemessage,ResultProcessor`1processor,ServerEndPointserver)atStackExchange.Redis.RedisBase.ExecuteSync

redis - 如何使用 StackExchange.Redis 将 Redis 键作为整数插入

我正在使用StackExchange.Redis客户端将我的数据存储在Redis服务器中但是在尝试将键作为整数插入时redisDataBase.StringSet(1,"1");我有异常(exception),虽然在redisdocumentation,Redis键是二进制安全的,这意味着您可以使用任何二进制序列作为键,从“foo”这样的字符串到JPEG文件的内容。空字符串也是一个有效的键。 最佳答案 因为int不能作为key,key应该是string或者byte[]类型。你可以看看thispage查看更多。如果你想要一个整数作为键

c# - 无法使用 StackExchange.Redis 从主机连接到 docker redis 容器

不确定是连接字符串问题还是我的docker镜像问题。运行dockercontainerls我明白了57cb0c982c76redis"docker-entrypoint.s…"0.0.0.0:32773->6379/tcp端口好像映射到了外面。我试着跑dockerrun-d-Predis:alpine使用这个和其他不同的参数变体,并使用StackExchange.RedisC#驱动程序,它会超时。连接字符串如下所示:localhost:6379,ssl=True,abortConnect=False(无密码)。我做错了什么?更新尝试使用dockerrun-d-p6379:6379/tc

c# - Redis StackExchange SortedSetAdd 不更新现有元素

我刚刚开始学习Redis,并且在使用C#编程时,我使用的是StackExchangeRedis。我想试用SortedSet,这是我拥有的简单代码:创建示例数据privateListSeedUsers(){varlist=newList{newUser{Id=1.ToString(),UserName="Test1",Score=10},newUser{Id=2.ToString(),UserName="Test2",Score=23},newUser{Id=3.ToString(),UserName="Test3",Score=15},newUser{Id=4.ToString(),U

.net - 在 Xamarin Android 应用程序中使用 Azure Redis 缓存

我想在我的Android应用程序中使用AzureRedis缓存,我需要添加StackExchange.Redis首先根据此处的说明打包nuget:https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache但是,当我这样做时,我在包管理器控制台中收到以下错误消息:Installfailed.Rollingback...Install-Package:Couldnotinstallpackage'StackExchange.Redis1.0.488'.Y

c# - 为什么 Redis 连接在不指定凭据的情况下从 C# 工作?

为什么在不指定凭据的情况下从C#进行Redis连接?我有此代码工作并连接到远程服务器。我的客户端机器是windows,REMOTE-MACHINE是Linux服务器。这是否意味着我局域网中的任何人都可以连接?publicclassRedisConnectorHelper{staticRedisConnectorHelper(){RedisConnectorHelper.lazyConnection=newLazy(()=>{returnConnectionMultiplexer.Connect("REMOTE-MACHINE");});}privatestaticLazylazyCon

c# - 使用 StackExchange.Redis 时,如何在 RedisValue 之上维护 C# 原始类型

我开始使用StackExchange.Redis用于存储键值对的客户端。我有一个嵌套的动态对象(JObject),我将该对象展平为一个键值结构,如下所示:让我们假设JObject看起来像:"Root":{"Obj1":{"Prop":12,"Prop2":"StringValue"}}我将这个对象展平为Dictionary生成如下所示的键值对:key:"Root.Obj1.Prop"|value:12key:"Root.Obj1.Prop2"|value:"StringValue"我正在使用object而不是string因为我的客户知道如何处理各种原语(并不总是strings)。特定的

performance - 使用 Stackexchange.Redis 的 MGET 调用在负载下变得越来越慢

我有一个在AWSECS的linux容器中运行的ASP.NetCoreWebAPI。此API主要从Redis获取数据,但如果不存在,则会回退到数据库(我们设计了99.99%的数据都在Redis缓存中)。我有一个相当高的负载,大约1-2KRPS(当然对你们中的一些人来说可能是中到小;-)。此API通过MGET(20-60之间的任意位置)为每个请求查找多个键。一切都是异步的,没有同步代码或等待或其他容易发生死锁的代码。RPS上升得越多,事情就会变得越来越慢。我还尝试了PreserveAsyncOrder=false,但情况似乎更糟。我认为我的Redis服务器(位于Elasticache中)不