1、应用程序会发起多少个请求连接?
1)对于php程序,以短连接为主。redis的连接数等于:所有web server接口并发请求数/redis分片的个数。
2)对于java应用程序,一般使用JedisPool(实现上是组合了apache common-pools),而连接池在jvm里面共享的(一个进程一个jvm)。
redis的连接数计算:应用程序的个数(tomcat) * 连接池的大小(假设pool都一样大)/ redis分片的个数。
有时为了保证请求快速得到响应,保持一定的空闲连接(setMinIdle)。

下面的配置中,在连接池饱和状态,最多有90个连接数(MaxTotal-MinIdle),保持10个空闲连接。
JedisPoolConfig config = new JedisPoolConfig();
                        config.setMinIdle(10);
                        config.setMaxTotal(100);              
                        config.setMaxWaitMillis(1000L);
                        config.setTestOnBorrow(true);
jedispool的推荐设置的参数:
(1)setMinIdle,保留一定的空闲连接池对象;
(2)setTestOnBorrow设置为true,每次从连接池中获取连接时,检查连接的有效性。
(3)setMinEvictableIdleTimeMillis,设置淘汰空闲连接的最小时间。
(4)连接池的大小不要设置过大,导致redis需要维持很多连接对象。

2、redis的连接数限制是多少?
在 Redis2.4 中,最大连接数是被直接硬编码在代码里面的,而在2.6版本中这个值变成可配置的。maxclients 的默认值是 10000
redis默认最多允许10000个连接。默认的1w个够用么?
redis如果每秒保持1w个连接,每个链接每秒执行1000个请求。每秒1000w的请求,这时候redis的cpu已经成为了性能瓶颈。
所以下面的测试结果显示,在6w的并发连接数情况下,qps只有5w。单个redis请求响应时间超过了1s。
经验而言,对于php程序而言,当1w个连接数占满了时候,实际上cpu已经出现了性能瓶颈。
还有另外两种状况。
1)慢查询引起,很多请求等待响应。     
2)php程序运行时间很长,且程序中没有主动关闭连接,处于空闲状态。
java程序一般是用连接池和长连接,如果redis有大量的连接,那么连接池的太大,且处于活动或者有效状态的连接很多。
解决方案是:1)减小连接池的大小。2)加快空闲连接对象的回收速度。
总结而言,redis连接数过大原因归结于两点:
1)redis处理能力不足,大量请求处于等待状态。不管是请求过多还是慢查询。
2)客户端的连接对象没有及时释放。不管是应用程序主动释放还是连接池没有及时回收。
既然知道原因,也就知道解决方案。借用别人的一句话,发现问题所在是最关键的。
目前php程序还没有碰到过大连的请求连接的问题,而Java程序已经碰到过多次。
 
3、连接数对redis有什么性能的影响?
在250一下的并发连接数情况下,redis的处理能力几乎一致。而随着并发连接数增加,处理能力反而下降。redis的单线程处理方式决定了,redis只能串行的处理客户端请求。

redis连接数的更多相关文章

  1. redis连接数问题

    redis连接数查看 info client redis连接数满了,不会继续建立连接. 造成redis连接数满了原因有很多. 1.建立新连接不close()的话redis连接不会回归连接池. 显示所有 ...

  2. 查看redis连接数

    在redis-cli命令行使用:info clients可以查看当前的redis连接数. 如下图: config get maxclients 可以查询redis允许的最大连接数. 如下图:

  3. 压测过程中,获取不到redis连接池,发现redis连接数高

    说明:图片截得比较大,浏览器放大倍数看即可(涉及到隐私,打了码,请见谅,如果有疑问,欢迎骚扰). 最近在压测过程中,出现获取不到redis连接池的问题 xshell连接redis服务器,查看连接数,发 ...

  4. redis连接数高居不下,怎么破?。。。。这么破

    最近项目一直在使用redis,首次用redis,随便从网上找了例子就用了,一开始用的还挺正常,后来发现,当客户端访问量一上来,redis的连接数居高不下,一开始以为是客户端没有关闭,开始怀疑redis ...

  5. RedisTemplate连接不释放、Redis断线不重连问题、Redis连接数高飙升

    使用RedisTemplate操作Redis数据,但遇到网络断线后不会重新连接 毫无头绪 一顿捣鼓 最终解决 整理如下 帮助更多的人 1.起因 使用RedisTemplate 配置 开启了事务 ena ...

  6. redis客户端连接,最大连接数查询与设置

    ##redis客户端连接数 redis通过监听一个TCP端口或socket的方式接收来自客户端的连接, 当与客户端建立连接后,redis内部会进行如下操作:()客户端socket会被设置为非阻塞模式, ...

  7. [转]细说Redis监控和告警

    原文  https://zhuoroger.github.io/2016/08/20/redis-monitor-and-alarm/? 对于任何应用服务和组件,都需要一套完善可靠谱监控方案. 尤其r ...

  8. redis其他问题

    如何解决redis高并发客户端频繁time out? 现在业务上每天有5亿+的请求,平时redis的操作在2K+每秒左右.到了高峰有3K+,这时候客户端就会频繁的报connect time out的异 ...

  9. 做个简单的Redis监控(源码分享)

    Redis监控 Redis 是目前应用广泛的NoSQL,我做的项目中大部分都是与Redis打交道,发现身边的朋友也更多人在用,相对于memcached 来说,它的优势也确实是可圈可点.在随着业务,数据 ...

随机推荐

  1. 论Top与ROW_NUMBER读取第一页的效率问题

    10.29 前一段时间研究关于分页的问题,由于数据库属于百万级的,考虑了关于优化方面的问题.其中一个考虑是:第一页展现的频率肯定是最高的,所以我想第一页就使用Top N来读取. 这个想法本身是没有错, ...

  2. Java api 入门教程 之 JAVA的SYSTEM类

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...

  3. linux基础-基本命令的讲解(1-7单元)

    基本命令的讲解 主要内容介绍 1.LINUX操作系统安装及初始化配置(熟悉):2.LINUX操作系统目录组成结构及文件级增删改查操作(重点):3.LINUX操作系统用户.权限管理(重点):4.开源软件 ...

  4. Bootstrap 学习(1)

    简介 Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. Bootst ...

  5. 解决AutoCAD2010在VS2010上无法命中断点

    AutoCAD 2010的二次开发告一段落,现在整理一些开发中遇到的问题. 最早遇到的问题是关于AutoCAD 2010在VS 2010上无法调试.奇怪的是这问题只出现在我同事电脑上,我的电脑一切OK ...

  6. Windows Azure文件共享服务--File Service

    部署在Windows Azure上的虚拟机之间如何共享文件?例如:Web Server A和Web Server B组成负载均衡集群,两个服务器需要一个共享目录来存储用户上传的文件.通常,大家可能首先 ...

  7. AI(Adobe Illustrator)简单入门——骷髅

    成果: 步骤如下: 一.椭圆工具画正圆 按住shift+alt画一个正圆. 二.圆角矩形工具画矩形 用圆角矩形工具画一个矩形,然后全选水平垂直对齐. 三.画眼睛 利用椭圆工具画一只眼睛,然后按住alt ...

  8. WinCE项目应用之虚拟仪器(VI)

    虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试.测量和自动化的应用.虚拟测量仪器(VI)概念由美国国家仪器公司NI(National Instruments)提出,并引发了传 ...

  9. POJ1426Find The Multiple[BFS]

    Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 27433   Accepted: 114 ...

  10. luogu[1135]奇怪的电梯

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...