csredis icon indicating copy to clipboard operation
csredis copied to clipboard

csrediscore和freeRedis哪个性能更好些

Open MaXinWang opened this issue 2 years ago • 8 comments

我们4000并发,经常会报[System.Exception: 【.....】 状态不可用,等待后台检查程序恢复方可使用。] Connect to server timeout ---> CSRedis.Internal.IO.RedisSocketException: Connect to server timeout at CSRedis.Internal.IO.RedisSocket.Connect(EndPoint endpoint, Int32 timeout) at

MaXinWang avatar Aug 22 '22 15:08 MaXinWang

4000并发什么概念,他不是每秒4000是同时处理4000,报错是连接服务器超时,这么大的并发量很难不超时,服务器有拒绝的理由,本地端口也可能被 webapi 耗光。

2881099 avatar Aug 22 '22 15:08 2881099

提示:redis-server 单机每秒处理量是 10W

2881099 avatar Aug 22 '22 15:08 2881099

没有达到Redis的瓶颈,压测本身会导致服务器的cpu很高,观测到当cpu快满了的时候,就开始报这个问题了。

MaXinWang avatar Aug 23 '22 11:08 MaXinWang

并发4000和每秒4000是不同概念,相差百倍

2881099 avatar Aug 23 '22 12:08 2881099

使用aws的ElastiCache提供的Redis集群(2主2从),是否需要将testcluster设置成false?

MaXinWang avatar Aug 24 '22 14:08 MaXinWang

你执行看 cluster nodes 返回信息,里面的 ip 是不是他内部 ip

如果是就设置 false

一般云服务商都要设置 false

2881099 avatar Aug 24 '22 14:08 2881099

@2881099 您好,想请教一下: 1、我这边也是aws的ElastiCache提供的Redis集群(3主3从)没有ssl加密 2、cluster nodes 命令返回的是集群机器的内网 ip image 3、info命令里redis_mode:cluster

最近,AWS有一次强制更新后,redis集群机器的内网 ip全都变了,然后我们应用的控制台就一直报如下错误,重启才能好 image 错误里的IP还是redis机器的老IP,没有新的IP

请教: 1、这个报错里的IP是从cluster node命令里获取到的么? 2、之前没有设置testcluster,是不是应该将testcluster设置成false,能解决此问题? 3、如果不是testcluster的设置问题,那有办法自动获得新的IP么?

kyleli666 avatar Apr 19 '23 06:04 kyleli666

@kyleli666

  1. 是的
  2. 不需要设置 testcluster
  3. testcluster 语法解决该问题,如果ip变化了,应该重新创建新的 CSRedisClient 实例

2881099 avatar Apr 19 '23 14:04 2881099