ShardedJedisPool的使用

1 package com.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import redis.clients.jedis.JedisPoolConfig;
 7 import redis.clients.jedis.JedisShardInfo;
 8 import redis.clients.jedis.ShardedJedis;
 9 import redis.clients.jedis.ShardedJedisPool;
10 
11 public class RedisShardPoolTest {
12     
13     static ShardedJedisPool pool;
14 
15     static{
16         JedisPoolConfig config =new JedisPoolConfig();//Jedis池配置
17         config.setMaxActive(500);//最大活动的对象个数
18         config.setMaxIdle(1000 * 60);//对象最大空闲时间
19         config.setMaxWait(1000 * 10);//获取对象时最大等待时间
20         config.setTestOnBorrow(true);
21         String hostA = "192.168.0.100";
22         int portA = 6379;
23         String hostB = "192.168.0.115";
24         int portB = 6379;
25         List<JedisShardInfo> jdsInfoList =new ArrayList<JedisShardInfo>(2);
26         JedisShardInfo infoA = new JedisShardInfo(hostA, portA);
27         infoA.setPassword("admin");
28         JedisShardInfo infoB = new JedisShardInfo(hostB, portB);
29         infoB.setPassword("admin");
30         jdsInfoList.add(infoA);
31         jdsInfoList.add(infoB);
32         pool =new ShardedJedisPool(config, jdsInfoList);
33      }
34 
35        
36 
37     /**
38     
39      * @param args
40     
41      */
42     
43     public static void main(String[] args) {
44         for(int i=0; i<100; i++){
45             String key = generateKey();
46             ShardedJedis jds = null;
47             try {
48                 jds = pool.getResource();
49                 System.out.println(key+":"+jds.getShard(key).getClient().getHost());
50                 System.out.println(jds.set(key,Math.random()+""));
51             } catch (Exception e) {
52                 e.printStackTrace();
53             } finally {
54                 pool.returnResource(jds);
55             }
56         }
57     }
58     
59     private static int index = 1;
60     public static String generateKey(){
61         return String.valueOf(Thread.currentThread().getId())+"_"+(index++);
62     }
63 }
 
=============================================================================================================================
redisClient 读取配置,实例化线程池
SmartShardedJedisPool pool = redisClient.getSmartShardedJedisPool();
ShardedJedis shardedJedis = pool.getResource();
Collection<Jedis> jedisList = shardedJedis.getAllShards();获取所有的缓存实例
Set<String> keys = jedis.keys(prefix); 获取匹配prefix的所有的key

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值