Redis教程,Redis集群搭建与Spring-data-redis的使用(Spring-data-redis使用篇)
- Redis教程,Redis集群搭建与Spring-data-redis的使用(介绍篇)
- Redis教程,Redis集群搭建与Spring-data-redis的使用(集群搭建篇)
- Redis教程,Redis集群搭建与Spring-data-redis的使用(Spring-data-redis使用篇)
一、使用Spring-data-redis Jar包准备
首先spring-data-redis
需要在1.7
版本以上,附件里有 Mavem 的pom.xml
可以下载其他依赖和测试的时候必要的包。
Maven 引入 Spring-data-redis
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.5.RELEASE</version>
</dependency>
他会依赖一些包,比如说
spring-data-commons
,在spring-data-x
系列里,都要依赖这个包。如果你之前项目里使用到了spring-data-x
系列的包,可能需要升级,因为都共同依赖了spring-data-commons
,但是在当前集群要使用的spring-data-redis
中 spring-data-commons
必须要1.12.x
版本以上,这个问题要注意一下。
二、Spring-data-redis配置文件配置。
<description>Jedis Cluster Configuration</description>
<!-- 加载配置属性文件 按需加载 -->
<context:property-placeholder
ignore-unresolvable="true" location="classpath:redis.cluster.properties" />
<!-- 配置Cluster -->
<bean id="redisClusterConfiguration"
class="org.springframework.data.redis.connection.RedisClusterConfiguration">
<property name="maxRedirects" value="3"></property>
<!-- 节点配置 -->
<property name="clusterNodes">
<set>
<bean class="org.springframework.data.redis.connection.RedisClusterNode">
<constructor-arg name="host" value="192.168.0.201"></constructor-arg>
<constructor-arg name="port" value="30006"></constructor-arg>
</bean>
<bean class="org.springframework.data.redis.connection.RedisClusterNode">
<constructor-arg name="host" value="192.168.0.201"></constructor-arg>
<constructor-arg name="port" value="30001"></constructor-arg>
</bean>
<bean class="org.springframework.data.redis.connection.RedisClusterNode">
<constructor-arg name="host" value="192.168.0.201"></constructor-arg>
<constructor-arg name="port" value="30002"></constructor-arg>
</bean>
<bean class="org.springframework.data.redis.connection.RedisClusterNode">
<constructor-arg name="host" value="192.168.0.201"></constructor-arg>
<constructor-arg name="port" value="30003"></constructor-arg>
</bean>
<bean class="org.springframework.data.redis.connection.RedisClusterNode">
<constructor-arg name="host" value="192.168.0.201"></constructor-arg>
<constructor-arg name="port" value="30004"></constructor-arg>
</bean>
<bean class="org.springframework.data.redis.connection.RedisClusterNode">
<constructor-arg name="host" value="192.168.0.201"></constructor-arg>
<constructor-arg name="port" value="30005"></constructor-arg>
</bean>
</set>
</property>
</bean>
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="100" />
<property name="maxTotal" value="600" />
</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" />
</bean>
我这里直接写这里了,你也可以写到classpath:redis.cluster.properties
文件中。上面引入了这个文件,没有这个文件会报错。
三、Junit测试Spring-data-redis
1.Junit jar 准备
<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.2.5.RELEASE</version>
<type>pom</type>
</dependency>
需要一个spring-test
。如果还有问题,看附件里的pom.xml
。
2.log4j.properties准备
新建一个log4j.properties
文件放到resource
下,内容如下。
log4j.rootLogger=debug,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
log4j.category.org.apache.commons.beanutils.converters=error
3.Java代码
log4j 支持类:
package test;
import java.io.FileNotFoundException;
import org.junit.runners.model.InitializationError;
import org.springframework.util.Log4jConfigurer;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
public class JUnit4ClassRunner extends SpringJUnit4ClassRunner{
static {
try {
Log4jConfigurer.initLogging("classpath:log4j.properties");
} catch (FileNotFoundException ex) {
System.err.println("Cannot Initialize log4j");
}
}
public JUnit4ClassRunner(Class<?> clazz) throws InitializationError {
super(clazz);
}
}
Junit 测试类:
在这个匿名内部类
package test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
@RunWith(JUnit4ClassRunner.class)
// 整合
@ContextConfiguration(locations = "classpath:spring.xml")
// 加载配置
public class TestSDK extends AbstractJUnit4SpringContextTests {
@Autowired
RedisTemplate redisTemplate;
@Test
public void testUserInfo() {
redisTemplate.execute(new RedisCallback<Integer>() {
//这里返回值是个上面的RedisCallback<Integer> 中的泛型一直,
public Integer doInRedis(RedisConnection connection) {
int i = 0;
for (; i < 100; i++) {
byte[] key = ("key:" + i).getBytes();
byte[] value = ("value:" + i).getBytes();
connection.set(key, value);
}
//这里返回值是个上面的RedisCallback<Integer> 中的泛型一直,
return i;
}
});
}
}
结构如下:
OK了,这个比较简单。
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/203.html
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。