ServiceStack.Redis连接池不起作用的问题处理

在新的项目中用到了Redis做ORM的二级缓存,一开始是每次New一个新的Client去连接服务器,发现没过多久,服务器的连接池就爆掉了,于是用PooledRedisClientManager来做客户端连接池的管理,但是发现,无论怎么设置链接池的数量,客户端发起的连接数根本不受控制,还是一次一个新连接,很是郁闷,上Stackoverflow上搜了很久,没有一个办法能解决问题的,无奈之下只能连ServiceStack.Redis的源码进行调试,百般努力下终于发现端倪,罪魁祸首是下面这段代码:


由于这个项目中用到了Twemproxy,下面写着Twemproxy not support INFO command,这导致了每次连接Client都会去试图获取INFO信息,获取不到,就把连接的状态标志为HadExceptions = true,等到新的连接请求过来时,就会因为HadExceptions = true,而去关闭老的连接,再启一个新连接,这时连接池就一点用都没了,知道这个原因后,接下来怎么改就按大家自己的想法了,我的做法是简单粗暴的在获取版本号的地方给一个版本号,不再去发起INFO 请求,解决了这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值