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 jdsInfoList =new ArrayList(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 }
时间: 2024-09-16 11:03:10

ShardedJedisPool的使用的相关文章

java实现redis数据库访问

分析亚马逊AWS数据存储-----http://edu.csdn.net/course/detail/873 一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位win7系统对应的版本: 2.安装 1)解压后将里面所有文件拷贝至redis安装目录: 几个exe程序的功能:   redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发

linux下小试redis demo

先启动  redis-server /etc/redis/redis.conf  package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.client

InitializingBean,FactoryBean详解

Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的getObject方法所返回的对象.创建出来的对象是否属于单例由isSingleton中的返回决定.使用场景:1.通过外部对类是否是单例进行控制,该类自己无法感知 2.对类的创建之前进行初始化的操作,在afterPropertiesSet()中完成. Spring初始化bean的时候,如果bean实现了

Redis使用手册

给公司整理了一个简单的Redis使用手册,其中很多部分也是参考的他人的资料,在这里分享一下~    Redis调研及使用文档 1  引言 随着业务的增长和产品的完善,急速增长的数据给Oracle数据库带来了很大的压力,而随着我们对产品服务质量要求的提高,传统的数据查询方式已无法满足我们需求.为此我们需要寻找另外一种模式来提高数据查询效率.NoSQL内存数据库是最近兴起的新型数据库,它的特点就是把数据放在内存中操作,数据处理速度相对于磁盘提高了好几个量级,因此,通过把经常访问的数据转移到内存数据库

redis安装,redis项目以来,redis和spring整合,redis的service,redis的service实现类

一.redis安装: Redis-3.2.6.tar.gz安装,参考方式: 用源码工程来编译安装 1.  到官网下载最新stable版,这里使用的是:redis-3.2.6.tar.gz 2.  cd /usr/local   3.  make redis-src 4.  tar -zxvf    redis-3.2.6.tar.gz  -C  ./redis-src/ 2.解压源码并进入目录cd  /usr/local/redis-src/redis-3.2.6 3. 先执行make,检查是否

Jedis一致性hash与sharding

  一.Jedis一致性hash     利用缓存技术,不仅可以提升系统性能,还能缓解系统故障.对于redis 3.0以下的版本,redis-server没有sharding的功能,只有master-slave模式.目前企业用的普遍都是只有m/s模式的redis多实例部署,无论是master还是slave挂掉,都需要调整程序配置(或代码).Jedis为我们提供了编程级别的sharding方式,本文主要介绍相关API使用方法.        Jedis中sharding基于一致性hash算法,ha

征服 Redis + Jedis

[本文转载于征服 Redis + Jedis] 用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis!   相关链接: 征服 Redis 征服 Redis + Jedis 征服 Redis + Jedis + Spring (一)-- 配置&常规操作(GET SET DEL) 征服 Redis + Jedis + Spring (二)-- 哈希表操作(HMGET HMSET) 征服 Redis + Jed

基于Redis Sentinel的Redis集群(主从Sharding)高可用方案(转)

本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求: Redis Sentinel介绍 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: 监控,能持续监控Redis的主从实例是否正常

jedis连接池详解(Redis)

原子性(atomicity): 一个事务是一个不可分割的最小工作单位,事务中包括的诸操作要么都做,要么都不做. Redis所有单个命令的执行都是原子性的,这与它的单线程机制有关: Redis命令的原子性使得我们不用考虑并发问题,可以方便的利用原子性自增操作INCR实现简单计数器功能; 单机模式: package com.ljq.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import