redis集群单击版本与spring整合步骤

Posted 游浪踏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis集群单击版本与spring整合步骤相关的知识,希望对你有一定的参考价值。

1.搭建集群,关闭虚拟机防火墙,或者iptables参数,允许redis集群端口通过 

service iptables stop 或者 vim /etc/sysconfig/iptables

2.测试集群(不整合spring)

@Test
    public void testJedisCluster(){
        HashSet<HostAndPort> nodes = new HashSet<HostAndPort>();
        nodes.add(new HostAndPort("192.168.31.100", 7001));
        nodes.add(new HostAndPort("192.168.31.100", 7002));
        nodes.add(new HostAndPort("192.168.31.100", 7003));
        nodes.add(new HostAndPort("192.168.31.100", 7004));
        nodes.add(new HostAndPort("192.168.31.100", 7005));
        nodes.add(new HostAndPort("192.168.31.100", 7006));
        JedisCluster cluster = new JedisCluster(nodes);
        cluster.set("key1", "1000");
        System.out.println(cluster.get("key1"));
        cluster.close();
    
    }

 

3.配置spring文件

  

<bean id="redisClient" class="redis.clients.jedis.JedisCluster">
        <constructor-arg name="nodes">
            <set>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="7001"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="7002"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="7003"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="7004"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="7005"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="7006"></constructor-arg>
                </bean>
            </set>
        </constructor-arg>
      <!-- 可省略 --> <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg> </bean>
<!-- 连接池配置 -->
    <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>

4.测试集群(整合spring)

@Test
    public void testSpringJedisCluster() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
        JedisCluster jedisCluster =  (JedisCluster) applicationContext.getBean("redisClient");
        String string = jedisCluster.get("key1");
        System.out.println(string);
        jedisCluster.close();
    }

 5.单击版本测试(不整合spring)

@Test
    public void testJedisSingle(){
        //创建一个jedis的对象
        Jedis jedis = new Jedis("192.168.31.100", 6379);
        //调用jedis对象的方法,方法名称和redis的命令一致
        jedis.set("key1", "test01");
        System.out.println(jedis.get("key1"));
        //关闭jedis
        
        jedis.close();
    }

 

6.单击版本spring配置

<!-- jedis客户端单机版 -->
    <bean id="redisClient" class="redis.clients.jedis.JedisPool">
        <constructor-arg name="host" value="192.168.31.100"></constructor-arg>
        <constructor-arg name="port" value="6379"></constructor-arg>
        <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
    </bean>

 

7.单击版本spring(整合测试)

@Test
    public void testSpringJedisSingle() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
        JedisPool pool = (JedisPool) applicationContext.getBean("redisClient");
        Jedis jedis = pool.getResource();
        String string = jedis.get("key1");
        System.out.println(string);
        jedis.close();
        pool.close();
    }

 

  

以上是关于redis集群单击版本与spring整合步骤的主要内容,如果未能解决你的问题,请参考以下文章

redis实战_08_redis集群与spring整合

CAS工程用redis集群存储票据ticket Spring整合

redis spring怎么整合

Spring整合Redis(spring-data-redis)

springboot整合redis异常汇总

Spring Boot如何整合Redis