使用spring-data-redis操做Redis集羣

1. Maven依賴

注:spring-data-redis版本要大於1.7redis

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.3.4.RELEASE</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.4.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.7.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.8.2</version>
</dependency>

2.Spring配置文件

<!-- 配置Cluster -->
<bean id="redisClusterConfiguration" class="org.springframework.data.redis.connection.RedisClusterConfiguration">
    <property name="maxRedirects" value="3"/>
    <!-- 節點配置 -->
    <property name="clusterNodes">
        <set>
            <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                <constructor-arg name="host" value="127.0.0.1"/>
                <constructor-arg name="port" value="7000"/>
            </bean>
            <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                <constructor-arg name="host" value="127.0.0.1"/>
                <constructor-arg name="port" value="7001"/>
            </bean>
            <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                <constructor-arg name="host" value="127.0.0.1"/>
                <constructor-arg name="port" value="7002"/>
            </bean>
            <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                <constructor-arg name="host" value="127.0.0.1"/>
                <constructor-arg name="port" value="7003"/>
            </bean>
            <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                <constructor-arg name="host" value="127.0.0.1"/>
                <constructor-arg name="port" value="7004"/>
            </bean>
            <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                <constructor-arg name="host" value="127.0.0.1"/>
                <constructor-arg name="port" value="7005"/>
            </bean>
        </set>
    </property>
</bean>
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxIdle" value="100"/>
    <property name="maxTotal" value="600"/>
    <property name="maxWaitMillis" value="1000"/>
    <property name="testOnBorrow" value="true"/>
</bean>
<bean id="jeidsConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <constructor-arg ref="redisClusterConfiguration"/>
    <constructor-arg ref="jedisPoolConfig"/>
</bean>
<!-- redis 訪問的模版 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
    <property name="connectionFactory" ref="jeidsConnectionFactory"/>
    <!-- 序列化方式 建議key/hashKey採用StringRedisSerializer。 -->
    <property name="keySerializer">
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    </property>
    <property name="hashKeySerializer">
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    </property>
</bean>

3.Java調用

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext.xml")
public class RedisTest {

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Test
    public void testSetValue() {
        redisTemplate.opsForValue().set("test1", "hello");
        Assert.assertEquals("hello", redisTemplate.opsForValue().get("test1"));
    }
}
相關文章
相關標籤/搜索