首页 > 代码库 > redis集群、单击版本与spring整合步骤

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="http://www.mamicode.com/192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="http://www.mamicode.com/7001"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="http://www.mamicode.com/192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="http://www.mamicode.com/7002"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="http://www.mamicode.com/192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="http://www.mamicode.com/7003"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="http://www.mamicode.com/192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="http://www.mamicode.com/7004"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="http://www.mamicode.com/192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="http://www.mamicode.com/7005"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="http://www.mamicode.com/192.168.31.100"></constructor-arg>
                    <constructor-arg name="port" value="http://www.mamicode.com/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="http://www.mamicode.com/30" />
        <!-- 最大空闲连接数 -->
        <property name="maxIdle" value="http://www.mamicode.com/10" />
        <!-- 每次释放连接的最大数目 -->
        <property name="numTestsPerEvictionRun" value="http://www.mamicode.com/1024" />
        <!-- 释放连接的扫描间隔(毫秒) -->
        <property name="timeBetweenEvictionRunsMillis" value="http://www.mamicode.com/30000" />
        <!-- 连接最小空闲时间 -->
        <property name="minEvictableIdleTimeMillis" value="http://www.mamicode.com/1800000" />
        <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
        <property name="softMinEvictableIdleTimeMillis" value="http://www.mamicode.com/10000" />
        <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
        <property name="maxWaitMillis" value="http://www.mamicode.com/1500" />
        <!-- 在获取连接的时候检查有效性, 默认false -->
        <property name="testOnBorrow" value="http://www.mamicode.com/true" />
        <!-- 在空闲时检查有效性, 默认false -->
        <property name="testWhileIdle" value="http://www.mamicode.com/true" />
        <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
        <property name="blockWhenExhausted" value="http://www.mamicode.com/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="http://www.mamicode.com/192.168.31.100"></constructor-arg>
        <constructor-arg name="port" value="http://www.mamicode.com/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整合步骤