美文网首页
使用Redis pipelining提高执行速度

使用Redis pipelining提高执行速度

作者: touch_The_Sky | 来源:发表于2019-01-18 19:09 被阅读0次

Redis 如果有大量命令一个一个执行需要依次提交到redis --> 等待返回 -->提交下一个命令 -->等待返回
这样会浪费大量的通信时间
所以在需要一次大量命令的时候可以使用redis的pipelining一次提交所有命令给redis,然后redis会将命令依次执行并使用一个list返回所有命令的执行结果

@RestController
public class RedisController {

    @Autowired
    RedisTemplate redisTemplate;

 @GetMapping("/test")
    public void test() {
        ValueOperations ops = redisTemplate.opsForValue();
        long start = System.currentTimeMillis();
        for (int i = 0; i <1000; i++) {
            ops.increment("num", 1);
        }
        System.out.println("普通方式执行时长"+(System.currentTimeMillis()-start));
        long start2 = System.currentTimeMillis();
        List list = redisTemplate.executePipelined(new SessionCallback<Object>() {
            @Override
            public <K, V> Object execute(RedisOperations<K, V> redisOperations) throws DataAccessException {
                ValueOperations ops = redisTemplate.opsForValue();
                for (int i = 0; i <1000; i++) {
                    ops.increment("num", 1);
                }
                return null;
            }
        });
        System.out.println("pipeline方式执行时长"+(System.currentTimeMillis()-start2));

        System.out.println("======== "+list);
    }
}

执行结果:
可以看到速度大概提高了五倍左右

普通方式执行时长 257
pipeline方式执行时长 43
======== [1001, 1002, 1003, 1004, 1005...]

相关文章

  • 使用Redis pipelining提高执行速度

    Redis 如果有大量命令一个一个执行需要依次提交到redis --> 等待返回 -->提交下一个命令 -->等待...

  • Redis-管道

    Redis管道的使用原文介绍:http://redis.cn/topics/pipelining.html[htt...

  • Redis Pipelining

    Redis Pipelining可以一次发送多个命令,并按顺序执行、返回结果,节省RTT(Round Trip T...

  • go redis

    go 操作redis操作 Pipelining(管道) 发布/订阅 事务

  • 线程——java学习之<17>

    多进程的作用不是提高执行速度,而是提高cpu的使用率。多线程的作用不是提高执行速度,而是提高应用程序的使用率。新建...

  • 速度不够,管道来凑——Redis管道技术

    Redis客户端与服务器之间使用TCP协议进行通信,并且很早就支持管道(pipelining)技术了。在某些高并发...

  • 通过Headless Chrome/Firefox执行Selen

    以往我们执行Selenium脚本,如果为了提高脚本的执行速度,我们可能会考虑使用HtmlUnit 或者更多的使用P...

  • 使用Redis做Mybatis二级缓存

    介绍 使用mybatis时可以使用二级缓存提高查询速度,进而改善用户体验。 使用redis做mybatis的二级缓...

  • Deep Dive in Redis

    本 文将主要从Redis适用范围,与Memcached, Java容器对比,核心功能(Pipelining,Pub...

  • PHP 配置使用 Redis 储存 Session 数据

        PHP 默认使用文件存储 Session 数据,Redis 拥有极快的数据读写速度,使用 Redis 存储...

网友评论

      本文标题:使用Redis pipelining提高执行速度

      本文链接:https://www.haomeiwen.com/subject/bthprqtx.html