知道redis的连接数可以设置 【最大数】、【最大空闲数】、【最小空闲数】
默认的配置是:
private int maxTotal = 8; //最大数
private int maxIdle = 8; //最大空闲数
private int minIdle = 0; //最小空闲数
但是在这个区间里,到底有多少个连接,由什么影响的?
作如下测试:
在redis的命令框里,使用 info clients 命令,可以查看当前有多少个连接数
现在设置 minIdle = 0; maxIdle = 50; maxTotal = 100;
1、打开redis客户端,在命令框里使用 info clients 命令,可以查看当前有只有1个连接,就是redis客户端自己的连接
2、此时启动一个web项目,但是并没有在浏览器里打开对应的网址,使用命令查看,仍然只有1个连接数
3、打开浏览器,输入网址,此时命令查看,有2个连接数了,因为此时访问了服务器此时连接了redis
4、多打开几个浏览器,都登录网站,仍然只有2个连接数,因为没有并发访问
5、添加了如下代码,可以多线程并发访问redis,这时候连接数就会大幅发生改变
@RequestMapping(value = "/bingtest") @ResponseBody public String bingtest(){ for (int i = 0; i < 50000; i++) { Thread thread = new Thread(new Runnable() { @Override public void run() { // 这个方法里有两次redis的查询操作 wechatcontent(8L,2); } }); thread.start(); } return "success"; }
循环50次,连接数为7
循环500次,连接数为22
循环5000次,连接数为51
循环50000次,连接数为51
就这样一直持续了几分钟都是51
等过了一会连接数降为了1
再次循环50000次,连接数为101
这是为什么呢?,不用解释了吧,我觉得大家这么聪明,肯定懂!
所以,我得到的结论是:
1、redis的连接数的大小跟并发量和已有的连接数有关系
2、想要增加redis的性能,不只要设置最大空闲连接数,还要设置最小空闲连接数
原创文章,欢迎转载,转载请注明出处!