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

上一章完成了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.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值