?
? transaction pipeline 耗时(s)
测试一: n n 311
测试二: n y 10
测试三: y y 7
测试四: y n 10
?
结论:pipeline + transaction方式是几种插入方式中性能最好的。虽然有点意外,但测试多次仍然是这个结论。
?
测试代码如下:
?
import org.apache.commons.lang.randomstringutils;import redis.clients.jedis.jedis;import redis.clients.jedis.jedispool;import redis.clients.jedis.jedispoolconfig;import redis.clients.jedis.pipeline;import redis.clients.jedis.transaction;public class redistransactiontest { private static string host = xx.xx.xx.xx; private static jedispool pool = new jedispool(new jedispoolconfig(), host); private long rowcount = 1000000; // 100万 public static void main(string[] args) { long start = system.currenttimemillis(); new redistransactiontest().notransactionnopipeline(); system.out.println(notransactionnopipeline use + (system.currenttimemillis() - start) / 1000); pool = new jedispool(new jedispoolconfig(), host); start = system.currenttimemillis(); new redistransactiontest().pipelinewithouttransaction(); system.out.println(pipelinewithouttransaction use + (system.currenttimemillis() - start) / 1000); pool = new jedispool(new jedispoolconfig(), host); start = system.currenttimemillis(); new redistransactiontest().pipelinewithtransaction(); system.out.println(pipelinewithtransaction use + (system.currenttimemillis() - start) / 1000); pool = new jedispool(new jedispoolconfig(), host); start = system.currenttimemillis(); new redistransactiontest().transactionnopipeline(); system.out.println(transactionnopipeline use + (system.currenttimemillis() - start) / 1000); } public void pipelinewithouttransaction() { jedis jedis = pool.getresource(); try { pipeline p = jedis.pipelined(); for (int i = 0; i ?--end
?
?
已有 0 人发表留言,猛击->> 这里
iteye推荐
—软件人才免语言低担保 赴美带薪读研!—
原文地址:多种方式测试redis入库性能, 感谢原作者分享。
