Redis-Jedis工作笔记-jedis 按数据库分片

来源:互联网 发布:网络自制剧简称网剧 编辑:程序博客网 时间:2024/06/18 16:39

redis版本 :3.0.100-alphal

jedis版本:2.7.3

直接上代码,在代码中作解释:

package com.redis;
import java.util.ArrayList;
import java.util.List;

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

public class JedisShardTest {

    public static void main(String args[]) {

        List<JedisShardInfo> shardList = new ArrayList<JedisShardInfo>();

        // Jedis连接池

        JedisPoolConfig config = new JedisPoolConfig();

        // 最大空闲连接数

        config.setMaxIdle(8);

        // 最大连接数

        config.setMaxTotal(8);

        // 获取连接是的最大等待时间,如果超时就抛出异常

        config.setMaxWaitMillis(1000);

        // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;

        config.setTestOnBorrow(false);

        config.setTestOnReturn(true);

        // 通过URI的方式构造JedisShardInfo对象。原因:因为我是在同一个redis
        // 实例中用不同的数据库做的分片所以需要对JedisShardInfo中的数据库名进行赋值 (JedisShardInfo中有个私有属性
        // db其默认值是0,但是这个属性不提供set方法,所以只能通过这种方式进行赋值)。当然此处的host和port也可以不相同

        JedisShardInfo infoA = new JedisShardInfo("http://127.0.0.1:6379/10");
        JedisShardInfo infoB = new JedisShardInfo("http://127.0.0.1:6379/11");
        // userInfo:pwd 是redis服务器的密码 userInfo
        // 是固定写法,pwd是redis服务器密码密码。如果redis没有密码则按照上面给出的方法构造JedisShardInfo对象

        // JedisShardInfo infoA = new
        // JedisShardInfo("http://userInfo:pwd@127.0.0.1:6379/12");
        shardList.add(infoA);
        shardList.add(infoB);
        ShardedJedisPool pool = new ShardedJedisPool(config, shardList);

        ShardedJedis sJedis = pool.getResource();
        for (int i = 0; i < 1000; i++) {
            sJedis = pool.getResource();
            sJedis.set("key" + i, "v" + i);
            System.out.println("key=" + sJedis.get("key" + i));
            // 将连接池的连接收回,此方法在jedis-2.7.3中已经标注过期,如果用jdk1.7的话可以使用try-with-resources进行资源的释放和回收
            pool.returnResource(sJedis);
            ;
        }

    }
}



0 0
原创粉丝点击