redis 多线程_redis性能测试:多线程向redis插入亿级数据的时间性能(一)

本文详细记录了使用Jedis进行Redis性能测试的过程,包括单线程和多线程插入数据,以及使用pipeline优化性能。测试结果显示,多线程和pipeline能显著提高插入效率,但在数据量和线程数增加时,需注意线程安全和IO开销。
摘要由CSDN通过智能技术生成

前言

微信公众号:潇雷
当努力到一定程度,幸运自与你不期而遇。

背景

公司的数据库技术选型采用redis,每天会产生8亿条的数据往里面筛入。因此需要测一波redis的存储性能。下面就记录下自己的测试过程,以及一些踩过的坑。

测试需求

测试用多线程向redis中插入亿级数据。预期用10条线程向redis中插入8亿条数据。

服务器性能

本次测试采用自己的虚拟机测试:

参数 linux指令
系统 cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
内存 free -h total:3.7G  available:3.3G
cpu数量 cat /proc/cpuinfo cpu cores:2
HZ cat /proc/cpuinfo ] grep MHz ] uniq 1991.999

一、Jedis 单独插入测试

插入1w条数据

1、单线程:

 1@Test 2void exec() throws InterruptedException {
    
3    Jedis jedis = new Jedis("192.168.44.101", 6379);
4    jedis.flushDB();
5    new Thread() {
6            @Override 7            public void run() {
8                String key = "32021420001:90000300009999:10001:1601198414621:";
9                long startTime = System.currentTimeMillis();
10                for (int j = 1; j <= 10000; j++) {
11                   jedis.set(key+j+"",key+j+"");
12                }
13                long endTime = System.currentTimeMillis();
14                System.out.println("exec time : " + currentThread().getName()+":"+(endTime - startTime));
15            }
16     }.start();
17    System.out.println(Thread.currentThread().getName());
18    Thread.sleep(40000);
19}

单线程插入1w条数据需要的时间为4.7s

1main
2exec time : Thread-2:4784

2、两个线程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值