使用jedisCluster操作Redis集群

 

 

 

连接单机版

第一步:创建一个Jedis对象。需要指定服务端的ip及端口。

第二步:使用Jedis对象操作数据库,每个redis命令对应一个方法。

第三步:打印结果。

第四步:关闭Jedis

@Test

public void testJedis()throws Exception {

// 第一步:创建一个Jedis对象。需要指定服务端的ip及端口。

Jedis jedis =new Jedis("192.168.25.153", 6379);

// 第二步:使用Jedis对象操作数据库,每个redis命令对应一个方法。

String result =jedis.get("hello");

// 第三步:打印结果。

System.out.println(result);

// 第四步:关闭Jedis

jedis.close();

}

 

接单机版使用连接池

第一步:创建一个JedisPool对象。需要指定服务端的ip及端口。

第二步:从JedisPool中获得Jedis对象。

第三步:使用Jedis操作redis服务器。

第四步:操作完毕后关闭jedis对象,连接池回收资源。

第五步:关闭JedisPool对象。

@Test

public void testJedisPool()throws Exception {

// 第一步:创建一个JedisPool对象。需要指定服务端的ip及端口。

JedisPool jedisPool = new JedisPool("192.168.25.153", 6379);

// 第二步:从JedisPool中获得Jedis对象。

Jedis jedis = jedisPool.getResource();

// 第三步:使用Jedis操作redis服务器。

jedis.set("jedis","test");

String result = jedis.get("jedis");

System.out.println(result);

// 第四步:操作完毕后关闭jedis对象,连接池回收资源。

jedis.close();

// 第五步:关闭JedisPool对象。

jedisPool.close();

}

 

 

 

连接集群版

第一步:使用JedisCluster对象。需要一个Set<HostAndPort>参数。Redis节点的列表。

第二步:直接使用JedisCluster对象操作redis。在系统中单例存在。

第三步:打印结果

第四步:系统关闭前,关闭JedisCluster对象。

 

// 连接redis集群

@Test

public void testJedisCluster() {



JedisPoolConfig config = new JedisPoolConfig();

// 最大连接数

config.setMaxTotal(30);

// 最大连接空闲数

config.setMaxIdle(2);



//集群结点

Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();

jedisClusterNode.add(new HostAndPort("192.168.101.3", 7001));

jedisClusterNode.add(new HostAndPort("192.168.101.3", 7002));

jedisClusterNode.add(new HostAndPort("192.168.101.3", 7003));

jedisClusterNode.add(new HostAndPort("192.168.101.3", 7004));

jedisClusterNode.add(new HostAndPort("192.168.101.3", 7005));

jedisClusterNode.add(new HostAndPort("192.168.101.3", 7006));

JedisCluster jc = new JedisCluster(jedisClusterNode, config);



JedisCluster jcd = new JedisCluster(jedisClusterNode);

jcd.set("name","zhangsan");

String value = jcd.get("name");

System.out.println(value);

}

 

 

 

****使用Spring整合

配置applicationContext.xml

<!-- 连接池配置 -->

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">

         <!-- 最大连接数 -->

        <property name="maxTotal" value="30" />

        <!-- 最大空闲连接数 -->

        <property name="maxIdle" value="10" />

        <!-- 每次释放连接的最大数目 -->

        <property name="numTestsPerEvictionRun" value="1024" />

        <!-- 释放连接的扫描间隔(毫秒) -->

        <property name="timeBetweenEvictionRunsMillis" value="30000" />

        <!-- 连接最小空闲时间 -->

        <property name="minEvictableIdleTimeMillis" value="1800000" />

        <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->

        <property name="softMinEvictableIdleTimeMillis" value="10000" />

        <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->

        <property name="maxWaitMillis" value="1500" />

        <!-- 在获取连接的时候检查有效性, 默认false -->

        <property name="testOnBorrow" value="true" />

        <!-- 在空闲时检查有效性, 默认false -->

        <property name="testWhileIdle" value="true" />

        <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时,默认true -->

        <property name="blockWhenExhausted" value="false" />

</bean>

<!-- redis集群 -->

<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">

    <constructor-arg index="0">

<set>

    <bean class="redis.clients.jedis.HostAndPort">

        <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

        <constructor-arg index="1" value="7001"></constructor-arg>

    </bean>

    <bean class="redis.clients.jedis.HostAndPort">

        <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

        <constructor-arg index="1" value="7002"></constructor-arg>

    </bean>

    <bean class="redis.clients.jedis.HostAndPort">

        <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

        <constructor-arg index="1" value="7003"></constructor-arg>

    </bean>

    <bean class="redis.clients.jedis.HostAndPort">

        <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

        <constructor-arg index="1" value="7004"></constructor-arg>

    </bean>

    <bean class="redis.clients.jedis.HostAndPort">

        <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

        <constructor-arg index="1" value="7005"></constructor-arg>

    </bean>

    <bean class="redis.clients.jedis.HostAndPort">

        <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

        <constructor-arg index="1" value="7006"></constructor-arg>

    </bean>

</set>

</constructor-arg>

<constructor-arg index="1" ref="jedisPoolConfig"></constructor-arg>

</bean>

 

 

测试代码

private ApplicationContextapplicationContext;



@Before

public void init() {

applicationContext =new ClassPathXmlApplicationContext(

"classpath:applicationContext.xml");

}



//redis集群

@Test

public void testJedisCluster() {

JedisCluster jedisCluster = (JedisCluster)applicationContext.getBean("jedisCluster");



jedisCluster.set("name","zhangsan");

String value = jedisCluster.get("name");

System.out.println(value);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值