您的位置:首页 > 数据库 > Redis

008Java操作redis

2015-10-12 17:59 417 查看
1、使用jedis第三方jar包操作redis

mvn依赖

<dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>2.7.0</version>
</dependency>


2、数据库连接方式

单机单连接方式

单机连接池方式

多机分布式+连接池方式

3、代码演示

/**
     * 单机单连接方式操作 redis
     */
    @Test
    public void test1() {

         Jedis jedis = new Jedis(host , port );
          jedis.set( "jfpc", "hello" );
         System. out.println(jedis .get("jfpc" ));
          jedis.close();
    }

    /**
     * 单机连接池方式
     */
    @SuppressWarnings({ "resource", "deprecation" })
    @Test
    public void test2() {

         JedisPoolConfig poolConfig = new JedisPoolConfig();
          // 控制一个pool最多有多少个 jedis实例。
          poolConfig.setMaxTotal(100);
          // 控制一个pool最多有多少个状态为idle(空闲的)的 jedis实例。
          poolConfig.setMaxIdle(5);
          // 表示当borrow(引入)一个 jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
          poolConfig.setMaxWaitMillis(3000);
          // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的 jedis实例均是可用的;
          poolConfig.setTestOnBorrow(true);

         JedisPool jedisPool = new JedisPool(poolConfig, host , port );
         Jedis jedis = jedisPool.getResource();
         System. out.println(jedis .get("jfpc" ));
          jedisPool.returnBrokenResource( jedis);
    }

    /**
     * 多机分布式+连接池方式
     */
    @Test
    public void test3() {

          // 分布式集群列表对象
         List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
          // 第一台redis服务器
         JedisShardInfo jsi1 = new JedisShardInfo("192.168.2.20" , 6379);
          shards.add( jsi1);
          // 第二台redis服务器
         JedisShardInfo jsi2 = new JedisShardInfo("192.168.2.20" , 6380);
          shards.add( jsi2);

         JedisPoolConfig poolConfig = new JedisPoolConfig();
          // 控制一个pool最多有多少个 jedis实例。
          poolConfig.setMaxTotal(100);
          // 控制一个pool最多有多少个状态为idle(空闲的)的 jedis实例。
          poolConfig.setMaxIdle(5);
          // 表示当borrow(引入)一个 jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
          poolConfig.setMaxWaitMillis(3000);
          // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的 jedis实例均是可用的;
          poolConfig.setTestOnBorrow(true);

         ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig , shards );
         ShardedJedis jedis = shardedJedisPool.getResource();

          for (int i = 0; i < 100; i++) {
              // jedis.set("x"+i, "x"+i);
              jedis.zadd( "x" + i , i , "x" + i );
         }
         shardedJedisPool.returnBrokenResource(jedis);
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: