Redis教程,Redis集群搭建与Spring-data-redis的使用(Spring-data-redis使用篇)

soゝso 2016-12-23 11:44:38 15629

  Redis教程  ,  Redis  集群搭建系列:

  1. Redis教程,Redis集群搭建与Spring-data-redis的使用(介绍篇)
  2. Redis教程,Redis集群搭建与Spring-data-redis的使用(集群搭建篇)
  3. 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

转载时必须以链接形式注明原始出处及本声明。


附件下载:

备注:点击文件名下载,附件源来自云端,只能在本站下载。复制下载链接无效。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Redis教程Redis集群搭建Spring-data-redis使用(介绍
Redis教程Redis集群搭建Spring-data-redis使用集群搭建
SpringBoot 集成Spring-data-redisredis对象序列化存储
Linux Centos 使用 Redis service 启动,Redis service 脚本编写
Java Redis线程池ShardedJedisPool 使用方法,Java Jedis连接池的使用
Shiro教程(四)Shiro + Redis配置
Shiro教程(五)Shiro + Redis实现
Redis与Memcached的比较 ,然后选择了Redis
Redis的理解,Redis是什么,Redis和Memcache谁快?
Redis 密码、端口、ip绑定配置,bat编写运行redis
最新文章
使用七牛云存储实现图片API,自动删除图片方案合集 1140
神速ICP备案经验分享,ICP备案居然一天就通过了 2238
百度加强推送URL链接,百度SEO强行推送链接JavaScript代码案例讲解。 2913
SOJSON 拓展服务器被DDos攻击了一晚上,是如何解决的? 3358
湖南地区备案“新增网站需提交组网方案或解释说明”,关于备案做简单叙述 3314
企查查你是个什么企业,骗子的帮凶,诈骗的集中营,通过企查查骚扰企业电话不断,为所欲为的企查查 9623
Java爬取百度云观测对网站的检测数据,获取子域名及域名的安全信息 2555
【2020年】百度搜索词获取,获取百度搜索的关键词【真实有效】 7037
Nodejs环境安装,Nodejs环境安装一篇就够了 1804
iOS版淘宝打开提示“您使用的程序是内测版本,将于2020-03-28到期,到期将无法使用,请尽快下载最新版本” 2505
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 432360
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 417837
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 350803
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 312147
免费天气API,天气JSON API,不限次数获取十五天的天气预报 288054
Elasticsearch教程(四) elasticsearch head 插件安装和使用 221370
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 177535
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 136407
Elasticsearch教程(一),全程直播(小白级别) 119609
Elasticsearch教程(五) elasticsearch Mapping的创建 98909

骚码加入我们 / 千人QQ群:259217951

入群需要5元为的是没有垃圾广告,如果没有QQ钱包,可以加群主拉进。

二维码生成 来自 >> 二维码生成器

支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...