• redis的连接数的大小,跟什么有关系?并发量!和已有的连接数


    知道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的性能,不只要设置最大空闲连接数,还要设置最小空闲连接数

    原创文章,欢迎转载,转载请注明出处!

  • 相关阅读:
    学习笔记2-查看目录文件
    学习笔记1-基本信息及相关目录
    【图论】二分图最大匹配
    【图论】Dinic算法
    【图论】最小割
    【数据结构】左偏树
    【数学】欧拉定理
    【数据结构】ST表
    【数学】博弈模型
    【字符串】后缀数组
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/redis_con.html
Copyright © 2020-2023  润新知