首页 > 代码库 > redis 管道(Pipelining)
redis 管道(Pipelining)
有时,我们需要采用异步方式,一次发送多个指令,不同步等待其返回结果。
利用pipeline的方式从client打包多条命令一起发出,不需要等待单条命令的响应返回,
而redis服务端会处理完多条命令后会将多条命令的处理结果打包到一起返回给客户端(ps:有点类似存储过程的特点)。
这样可以取得非常好的执行效率。这就是管道,调用方法如下:
@Testpublic void test4Pipelined() { Jedis jedis = new Jedis("localhost"); Pipeline pipeline = jedis.pipelined(); long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { pipeline.set("p" + i, "p" + i); } List<Object> results = pipeline.syncAndReturnAll(); long end = System.currentTimeMillis(); System.out.println("Pipelined SET: " + ((end - start)/1000.0) + " seconds"); jedis.disconnect();}
内存数据库和普通数据库,优化的方式都差不多,连接池啊,批处理啊,乐观锁啊应该都是有的。
redis 管道(Pipelining)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。