jedis 连接池的使用

来源:互联网 发布:bp算法推导 编辑:程序博客网 时间:2024/05/16 11:06

package org.springframework.data.mongodb.examples.hello;

import java.util.ArrayList;

import java.util.List;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;

 

public class TestPool {
    
    private Jedis jedis;

    
    private JedisPool jedisPool;

    
     private ShardedJedis shardedJedis;

    
    private ShardedJedisPool shardedJedisPool;

 

    
    public TestPool() {
         initialPool();
         initialShardedPool();
         shardedJedis = shardedJedisPool.getResource();
         jedis = jedisPool.getResource();
    }
 

  

   private void initialPool() {
     JedisPoolConfig config = new JedisPoolConfig();
     config.setMaxActive(20);
     config.setMaxIdle(5);
     config.setMaxWait(1000);
     config.setTestOnBorrow(false);
    jedisPool = new JedisPool(config, "192.168.120.51", 6379);
  }

 

 
  private void initialShardedPool() {
  
 // 池基本配置
  JedisPoolConfig config = new JedisPoolConfig();
  config.setMaxActive(20);
  config.setMaxIdle(5);
  config.setMaxWait(1000l);
  config.setTestOnBorrow(false);
   // slave链接
  List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
  shards.add(new JedisShardInfo("192.168.120.51", 6379, "master"));

   // 构造池
   shardedJedisPool = new ShardedJedisPool(config, shards);
  }

 

   public void show() {
    testKey();
    testString();
    testList();
    testSet();
    testSortedSet();
    testHash();
    shardedJedisPool.returnResource(shardedJedis);
    jedisPool.returnResource(jedis);//add by lhs
   }

 

    private void testKey() {
     System.out.println("=============key==========================");
     // 清空数据
     System.out.println(jedis.flushDB());
     System.out.println(jedis.echo("foo"));
     // 判断key否存在
     System.out.println(shardedJedis.exists("foo"));
     shardedJedis.set("key", "values");
     System.out.println(shardedJedis.exists("key"));
    }

 

    private void testString() {
     System.out.println("=============String==========================");
     // 清空数据
     System.out.println(jedis.flushDB());
     // 存储数据
     shardedJedis.set("foo", "bar");
     System.out.println(shardedJedis.get("foo"));
     // 若key不存在,则存储
     shardedJedis.setnx("foo", "foo not exits");
     System.out.println(shardedJedis.get("foo"));
     // 覆盖数据
      shardedJedis.set("foo", "foo update");
      System.out.println(shardedJedis.get("foo"));
     // 追加数据
     shardedJedis.append("foo", " hello, world");
     System.out.println(shardedJedis.get("foo"));
     // 设置key的有效期,并存储数据
     shardedJedis.setex("foo", 2, "foo not exits");
     System.out.println(shardedJedis.get("foo"));
     try {
      Thread.sleep(3000);
     } catch (InterruptedException e) {
     }
     System.out.println(shardedJedis.get("foo"));
    // 获取并更改数据
     shardedJedis.set("foo", "foo update");
     System.out.println(shardedJedis.getSet("foo", "foo modify"));
     // 截取value的值
     System.out.println(shardedJedis.getrange("foo", 1, 3));
     System.out.println(jedis.mset   ("mset1", "mvalue1", "mset2", "mvalue2", "mset3", "mvalue3", "mset4", "mvalue4"));
     System.out.println(jedis.mget("mset1", "mset2", "mset3", "mset4"));
     System.out.println(jedis.del(new String[] { "foo", "foo1", "foo3" }));
     }

 

 

     private void testList() {
      System.out.println("=============list==========================");
      // 清空数据
      System.out.println(jedis.flushDB());
      // 添加数据
      shardedJedis.lpush("lists", "vector");
      shardedJedis.lpush("lists", "ArrayList");
      shardedJedis.lpush("lists", "LinkedList");
      // 数组长度
      System.out.println(shardedJedis.llen("lists"));
     // 排序
      System.out.println(shardedJedis.sort("lists"));
     // 字串
      System.out.println(shardedJedis.lrange("lists", 0, 3));
     // 修改列表中单个值
      shardedJedis.lset("lists", 0, "hello list!");
     // 获取列表指定下标的值
      System.out.println(shardedJedis.lindex("lists", 1));
     // 删除列表指定下标的值
      System.out.println(shardedJedis.lrem("lists", 1, "vector"));
     // 删除区间以外的数据
      System.out.println(shardedJedis.ltrim("lists", 0, 1));
      // 列表出栈
      System.out.println(shardedJedis.lpop("lists"));
     // 整个列表值
      System.out.println(shardedJedis.lrange("lists", 0, -1));

    }

   

     private void testSet() {
       System.out.println("=============set==========================");
       // 清空数据
       System.out.println(jedis.flushDB());
       // 添加数据
       shardedJedis.sadd("sets", "HashSet");
       shardedJedis.sadd("sets", "SortedSet");
       shardedJedis.sadd("sets", "TreeSet");
       // 判断value是否在列表中
       System.out.println(shardedJedis.sismember("sets", "TreeSet"));
       // 整个列表值
       System.out.println(shardedJedis.smembers("sets"));
      // 删除指定元素
       System.out.println(shardedJedis.srem("sets", "SortedSet"));
      // 出栈
      System.out.println(shardedJedis.spop("sets"));
      System.out.println(shardedJedis.smembers("sets"));
      //
      shardedJedis.sadd("sets1", "HashSet1");
      shardedJedis.sadd("sets1", "SortedSet1");
      shardedJedis.sadd("sets1", "TreeSet");
      shardedJedis.sadd("sets2", "HashSet2");
      shardedJedis.sadd("sets2", "SortedSet1");
      shardedJedis.sadd("sets2", "TreeSet1");
      // 交集
      System.out.println(jedis.sinter("sets1", "sets2"));
      // 并集
      System.out.println(jedis.sunion("sets1", "sets2"));
      // 差集
      System.out.println(jedis.sdiff("sets1", "sets2"));
     }
    

    

      private void testSortedSet() {
       System.out.println("=============zset==========================");
      // 清空数据
      System.out.println(jedis.flushDB());
      // 添加数据
      shardedJedis.zadd("zset", 10.1, "hello");
      shardedJedis.zadd("zset", 10.0, ":");
      shardedJedis.zadd("zset", 9.0, "zset");
      shardedJedis.zadd("zset", 11.0, "zset!");
      // 元素个数
      System.out.println(shardedJedis.zcard("zset"));
      // 元素下标
      System.out.println(shardedJedis.zscore("zset", "zset"));
      // 集合子集
      System.out.println(shardedJedis.zrange("zset", 0, -1));
      // 删除元素
      System.out.println(shardedJedis.zrem("zset", "zset!"));
      System.out.println(shardedJedis.zcount("zset", 9.5, 10.5));
      // 整个集合值
      System.out.println(shardedJedis.zrange("zset", 0, -1));
     }

     public static void main(String[] args) {
         new TestPool().show();
      }

}

原创粉丝点击