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

Java + Redis3.0.2集群的应用(二)——Spring集成Jedis

2015-06-28 00:23 766 查看
上一章完成了redis集群环境的搭建后,接下来的任务就是如何在java应用中使用redis缓存了,这里主要使用Spring集成jedis完成对缓存的操作,分三步走:

第一步:在pom.xml引入需要的jar包

<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>


第二步:Spring文件相关配置

1、添加redis.properties

#redis1的服务器地址  服务端口
redis.host1=192.168.0.106
redis.port1=6379
#redis2的服务器地址  服务端口
redis.host2=192.168.0.106
redis.port2=6380
#redis3的服务器地址  服务端口
redis.host3=192.168.0.106
redis.port3=6381
#redis4的服务器地址  服务端口
redis.host4=192.168.0.106
redis.port4=6382
#redis5的服务器地址  服务端口
redis.host5=192.168.0.106
redis.port5=6383
#redis6的服务器地址  服务端口
redis.host6=192.168.0.106
redis.port6=6384
#密码
redis.pass=123456
#客户端超时时间单位是毫秒
redis.timeout=100000
#最大连接数
redis.maxTotal=1000
#最大空闲数
redis.maxIdle=10
#最大建立连接等待时间
redis.maxWaitMillis=1000
#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.testOnBorrow=true


以上配置中redis服务器地址可以不用把6台redis服务器全部配置出来,因为现在是集群,你懂的。

2、添加application-redis.xml

<!-- jedis pool对象池配置 -->
<bean name="genericObjectPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig" >
<property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
<property name="maxTotal" value="${redis.maxTotal}" />
<property name="minIdle" value="${redis.maxWaitMillis}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>

<!-- 使用构造方法注入:public JedisCluster(Set<HostAndPort> nodes, int timeout, final GenericObjectPoolConfig poolConfig)  -->
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg index="0">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg type="java.lang.String" value="${redis.host1}" />
<constructor-arg type="int" value="${redis.port1}" />
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg type="java.lang.String" value="${redis.host2}" />
<constructor-arg type="int" value="${redis.port2}" />
</bean>
</set>
</constructor-arg>
<constructor-arg index="1" value="15000" type="int"></constructor-arg>
<constructor-arg index="2" ref="genericObjectPoolConfig"></constructor-arg>
</bean>


3、在Spring文件中引入redis.xml

<!-- 引入redis属性配置文件 -->
<import resource="applicationContext-redis.xml"/>


第三步:java应用中使用,下面给出一个小代码片段,大家看看就应该知道怎么用了:

@Service("redisCommandService")
public class RedisCommandServiceImpl implements RedisCommandService {
@Autowired
public JedisCluster jedisCluster;

@Override
public String set(String key, Object value, int expire) throws Exception {
try {
String result = jedisCluster.set(key, JSON.toJSONString(value));
if (expire > 0)
jedisCluster.expire(key, expire);
return result;
} catch (Exception e) {
throw e;
}

}


好了,基本上完成上面三步后,你已经可以在java中使用JedisCluster操作redis集群了。

下一章将讨论redis常用的数据结构,以及如何根据你的系统设计Key-Value.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: