首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

多种形式测试redis入库性能

2013-08-09 
多种方式测试redis入库性能import org.apache.commons.lang.RandomStringUtilsimport redis.clients.jedi

多种方式测试redis入库性能
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 < rowCount; i++) {String key = RandomStringUtils.randomAlphabetic(8);p.set(key, RandomStringUtils.randomNumeric(5));p.expire(key, 5 * 60);}p.sync();} catch (Exception e) {pool.returnResource(jedis);}}public void pipelineWithTransaction() {Jedis jedis = pool.getResource();try {Pipeline p = jedis.pipelined();p.multi();for (int i = 0; i < rowCount; i++) {String key = RandomStringUtils.randomAlphabetic(8);p.set(key, RandomStringUtils.randomNumeric(5));p.expire(key, 5 * 60);}p.exec();p.sync();} catch (Exception e) {pool.returnResource(jedis);}}public void noTransactionNoPipeline() {Jedis jedis = pool.getResource();try {for (int i = 0; i < rowCount; i++) {String key = RandomStringUtils.randomAlphabetic(8);jedis.set(key, RandomStringUtils.randomNumeric(5));jedis.expire(key, 5 * 60);}} catch (Exception e) {pool.returnResource(jedis);}}public void transactionNoPipeline() {Jedis jedis = pool.getResource();try {Transaction tx = jedis.multi();for (int i = 0; i < rowCount; i++) {String key = RandomStringUtils.randomAlphabetic(8);tx.set(key, RandomStringUtils.randomNumeric(5));tx.expire(key, 5 * 60);}tx.exec();} catch (Exception e) {pool.returnResource(jedis);}}}

?--end

?

?

热点排行