码迷,mamicode.com
首页 > 其他好文 > 详细

jedis使用方法总结

时间:2015-10-30 17:10:08      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:java redis

jedis是java操作redis最常用的驱动包,有多中使用方式,做一个总结方法自己使用:

依赖jar

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.6.2</version>
    <type>jar</type>
</dependency>


1.最简单的使用方式

/**
 * 这中是最简单的使用方式,每个Jedis对象都代表一个和RedisServer的socket连接,可以通过它来和远程的redis服务器通讯,执行命令;缺点在于不能每次使用都new一个Jedis对象。
 */
@Test
public void testSimpleJedis(){
    Jedis jedis = new Jedis("127.0.0.1", 6379);
    jedis.set("name", "sky");
    System.out.println(jedis.get("name"));
}

2. 使用连接池方式

/**
 * 这种采用连接池的方式可以避免频繁的创建和销毁Jedis对象所带来的性能消耗;连接池底层是    使用commons-pool来实现的,所有commons-pool支持的配置参数都可以用来配置JedisPool
   缺点是只能操作一个远程的redis服务器
 */
public void testJedisPool(){
    JedisPool jedisPool = new JedisPool("127.0.0.1", 6379);
    Jedis jedis = jedisPool.getResource();
    jedis.set("name", "sky");
    System.out.println(jedis.get("name"));
    jedisPool.returnBrokenResource(jedis);
}
和 spring 的集成配置
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxIdle" value="${redis.maxIdle}" />
    <property name="maxTotal" value="${redis.maxActive}" />
    <property name="maxWaitMillis" value="${redis.maxWait}" />
    <property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>

<bean class="redis.clients.jedis.JedisPool">
    <constructor-arg index="0" ref="jedisPoolConfig"/>
    <constructor-arg index="1" value="${redis.host}"/>
    <constructor-arg index="2" value="${redis.port}"/>
</bean>


3. 集群分片

/**
 * 集群分片直连。 采用一致性hash来处理分片机器down机故障,减小缓存失效对应用的影响。
 */
@Test
public void testShared(){
    List<JedisShardInfo> shards = Arrays.asList(
            new JedisShardInfo("localhost", 6379),
            new JedisShardInfo("localhost", 6380));
    //在new的同时建立和远程服务器的连接
    ShardedJedis sharding = new ShardedJedis(shards);
    long start = System.currentTimeMillis();
    for (int i = 0; i < 100000; i++) {
        String result = sharding.set("sn" + i, "n" + i);
    }
    long end = System.currentTimeMillis();
    System.out.println("Simple@Sharing SET: " + ((end - start) / 1000.0) + " seconds");
    sharding.disconnect();
}

4.集群分片+连接池

@Test
public void testSharedPool(){
    List<JedisShardInfo> shards = Arrays.asList(
            new JedisShardInfo("localhost",6379),
            new JedisShardInfo("localhost",6380));
    ShardedJedisPool pool = new ShardedJedisPool(new JedisPoolConfig(), shards);
    ShardedJedis one = pool.getResource();
    long start = System.currentTimeMillis();
    for (int i = 0; i < 100000; i++) {
        String result = one.set("spn" + i, "n" + i);
    }
    long end = System.currentTimeMillis();
    pool.returnResource(one);
    System.out.println("Simple@Pool SET: " + ((end - start)/1000.0) + " seconds");
    pool.destroy();
}


本文出自 “java小沙弥” 博客,请务必保留此出处http://leokongwq.blog.51cto.com/1310215/1708083

jedis使用方法总结

标签:java redis

原文地址:http://leokongwq.blog.51cto.com/1310215/1708083

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!