记一次Redis性能测试

记一次对Redis单机版的性能测性

在某书本上,有描述,redis 支持十几万次/s的读、81000万次的写。读写性能可能有多方面因素,最近刚买了一台云主机,今天我也来测试下吧。代码如下:


import redis.clients.jedis.Jedis;

public class QpsRedisTest {

    public static void main(String[] args) {
        //如果使用网络,则无法测试性能
        //Jedis jedis = new Jedis("真实IP", 6379);
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.auth("123456");
        int i = 0 ;
        try{

            long l = System.currentTimeMillis();
            while(true){
                long end = System.currentTimeMillis();
                if(end - l>=1000){
                    break;
                }
                i++;
                jedis.set("test:" + i,i+"");
                //下面这行打印代码,在Linux本地环境测试影响很大,性能差了1倍多
                //System.out.println("current=" + i);
            }

            System.out.println("write qps :" + i + "/s");
            
			i = 0;
            long l2 = System.currentTimeMillis();
            while(true){
                long end = System.currentTimeMillis();
                if(end - l2>=1000){
                    break;
                }
                i++;
                jedis.get("test:1");
                //下面这行打印代码,在Linux本地环境测试影响很大,性能差了1倍多
                //System.out.println("current=" + i);
            }
            System.out.println("read qps :" + i + "次/s");

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            jedis.close();
        }

    }
}

环境

  • redis-6.0.5
  • jdk-8u121-linux-x64
  • 云服务器 1核 2GB 1Mbps(3.10.0-862.el7.x86_64 #1 x86_64 x86_64 x86_64 GNU/Linux)

测试

将代码打成jar包,拷贝到服务器本机,进行测试:

[root@VM_0_13_centos SpringForRedis_jar]# java -jar SpringForRedis.jar 
write qps :27772/s
read qps :34811/s

在我的电脑上测试(网络因素,仅供参考):

write qps :31/s
read qps :31/s

redis自带的性能测试:

[root@VM_0_13_centos ~]# redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q
ERROR: NOAUTH Authentication required.
ERROR: failed to fetch CONFIG from 127.0.0.1:6379
WARN: could not fetch server CONFIG
SET: 64516.13 requests per second
LPUSH: 63694.27 requests per second

结论

整体来说,云服务的主机,使用Java的API,读写性能并没有达到书上所说的,而且读和写的性能差别不大;但是使用redis的性能测试指令,性能比较高;性能测试需要考虑的点较多,也需要大量的测试比较,今天也只是简单验证了下set的读写性能,记录一下,希望后续能够更深入的学习。

以后有遇到相关的知识,再来扫盲啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章