2.Redis批量处理(流水线)

Redis的默认操作是一条一条发送命令,但通过使用流水线技术,可以在网络传输成为瓶颈时大幅提升性能。测试显示,批量操作(流水线)相比非批量操作速度提升了约10倍,执行时间从230-400ms降低到4000-4500ms。
摘要由CSDN通过智能技术生成
  • 在默认的情况下,Redis客户端是一条一条的发送命令给Redis服务器的,这样做的性能显然不高。在关系型数据库中我们可以使用批量操作,也就是需要执行SQL是,才一次性的发送所有SQL去执行,这样性能就可以提高很多了。对于Redis也是可以的,这边是流水线(pipline)技术,在很多情况下并不是Redis性能不佳,而是网络传输的速度造成的瓶颈,使用流水线后就可以大幅度的在需要执行很多命令的时候提升Redis的性能。
  • 接下来进行测试:
//批量操作
 @Test
    public void execList() {
        List list = redisTemplate.executePipelined((RedisOperations redisOperation) -> {
                    long startTime = System.currentTimeMillis();
                    for (int i = 0; i < 10000; i++) {
                        redisOperation.opsForValue().set("K" + i, "v+i");
                    }
                    long endTime = System.currentTimeMillis();
                    log.info("1W次批量操作共计耗时" + (endTime - startTime));
                    return null;
                }
        );
    }

最短的时间197ms;经过多次测试,时间在230-400ms之间:
在这里插入图片描述

//非批量操作
@Test
    public void execList1() {
        long startTime = System.currentTimeMillis();
                    for (int i = 0; i < 10000; i++) {
                        redisTemplate.opsForValue().set("K" + i, "v+i");
                    }
                    long endTime = System.currentTimeMillis();
                    log.info("1W次操作共计耗时" + (endTime - startTime));


    }

最短的时间3515ms;经过多次测试,时间在4000-4500ms之间:
在这里插入图片描述

  • 从测试用例可以看出批量操作相比于非批量操作速度提升了大约10倍
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值