一.>创建一个maven工程应用和相关配置:Redis_study,创建工程应用过程略

1.>配置pom.xml:文件内容如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Redis_dom1</groupId>
<artifactId>Redis_study</artifactId>
<version>01</version>
<packaging>war</packaging>
<name>Redis_study xzh</name> <build>
<!-- ###########给出构建过程中所用到的插件start######## -->
<plugins>
<!-- 由于maven默认使用的jdk与工程配置的jdk版本不一致,导致无法编译通过,通过该插件指定jdk版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- maven-surefire-plugin 是maven里执行测试用例的插件,不显示配置就会用默认配置。这个插件的 surefire:test 命令会默认绑定maven执行的 test 阶段 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- 跳过测试单元 true:跳过测试,false不跳过(默认)-->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
<!-- ###########给出构建过程中所用到的插件end######## -->
</build> <properties>
<spring.version>3.2.3.RELEASE</spring.version>
</properties> <dependencies>
<!-- junit依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency> <!-- Redis客户端jedis依赖 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.0</version>
</dependency> <!-- spring-data-redis依赖 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.5.0.RELEASE</version>
</dependency> <!-- spring相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>

2.>配置Redis属性文件redis.properties:文件内容如下

#redis.hostName=localhost
#配置服务器ip地址
redis.hostName=***.***.***.**
redis.port=6379
redis.password=redisroot
redis.timeout=5000
redis.pool.maxActive=200
redis.pool.maxIdle=50
redis.pool.minIdle=20
redis.pool.maxWait=3000
redis.pool.testOnBorrow=true
redis.pool.testOnReturn=true
redis.pool.usePool=true

3.>配置Spring启动需初始化的上下文bean:application-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!--使用注解 -->
<context:annotation-config /> <!-- 加载redis配置文件 -->
<context:property-placeholder location="classpath:redis.properties" />
<bean id="jedisPoolConfig1" class="redis.clients.jedis.JedisPoolConfig">
</bean> <!-- ################RedisTemplate操作模板配置begin##################### -->
<bean id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" >
<property name="hostName" value="${redis.hostName}"></property>
<property name="port" value="${redis.port}"></property>
<property name="password" value="${redis.password}"></property>
<property name="timeout" value="${redis.timeout}"></property>
<property name="usePool" value="${redis.pool.usePool}"></property>
<property name="poolConfig" ref="jedisPoolConfig1"></property>
</bean> <bean id="jedisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory" />
<property name="keySerializer">
<bean
class="org.springframework.data.redis.serializer.StringRedisSerializer" />
</property>
<property name="valueSerializer">
<bean
class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
</property>
</bean>
<!-- ################RedisTemplate操作模板配置end##################### --> <!-- ################JedisPool操作配置begin ##############################-->
<!-- Redis连接池的配置 -->
<bean id="jedisPoolConfig2" class="redis.clients.jedis.JedisPoolConfig" >
<property name="maxTotal" value="${redis.pool.maxActive}"/> <!-- 控制一个pool可分配多少个jedis实例 -->
<property name="maxIdle" value="${redis.pool.maxIdle}"/> <!-- 控制一个pool最多有多少个状态为idle(空闲)的jedis实例 -->
<property name="minIdle" value="${redis.pool.minIdle}"/> <!-- 控制一个pool最少有多少个状态为idle(空闲)的jedis实例 -->
<property name="maxWaitMillis" value="${redis.pool.maxWait}"/><!-- 表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException -->
<property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/><!-- 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的 -->
<property name="testOnReturn" value="${redis.pool.testOnReturn}"/>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisPoolConfig2"/>
<constructor-arg index="1" value="${redis.hostName}" />
<constructor-arg index="2" value="${redis.port}" />
<constructor-arg index="3" value="${redis.timeout}" />
<!--Redis密码-->
<constructor-arg index="4" value="${redis.password}" />
</bean>
<!-- ################JedisPool操作配置end ################################--> </beans>

二.>编写测试代码

1.>编写Spring单位测试加载基础类:BaseTest.java

package redis;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.ContextConfiguration;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
//指定bean注入的配置文件
@ContextConfiguration(locations = {"classpath:application.xml"})
//使用标准的JUnit @RunWith 注释运行Spring Test Runner
@RunWith(SpringJUnit4ClassRunner.class)
public class BaseTest extends AbstractJUnit4SpringContextTests {}

2.>编写测试类:RedisTest.java

package redis;
import java.util.concurrent.TimeUnit;
import java.util.Map;
import java.util.HashMap; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
/**
*
* @ClassName: RedisTest
* @Description: TODO
* @author xzh
* @date 20170323
*
*/
public class RedisTest extends BaseTest
{
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private JedisPool jedisPool;
public Map<String,String> student = new HashMap<String,String>();
/**
* 测试插入与获取Redis的数据
* @Title: testPutAndGet
* @Description: TODO
* @throws
*/
@Test
public void testPutAndGet()
{
System.out.println(this.getClass().getName()+"testPutAndGet");
redisTemplate.opsForHash().put("user", "name", "rhwayfun");
Object object = redisTemplate.opsForHash().get("user", "name");
System.out.println(object);
}
/**
* 测试Redis作为缓存的例子
* @Title: testCache
* @Description: TODO
* @throws InterruptedException
* @throws
*/
@Test
public void testCache() throws InterruptedException
{
//-------jedisPool配置使用--redisTemplate--进行操作Start-------------//
System.out.println("-------jedisPool配置使用--redisTemplate--进行操作Start-------------");
// 插入一条数据
redisTemplate.opsForHash().put("user", "name", "rhwayfun");
// 设置失效时间为6秒
redisTemplate.expire("user", 6, TimeUnit.SECONDS);
// 3秒后获取
Thread.sleep(3000);
Object object = redisTemplate.opsForHash().get("user", "name");
System.out.println("3秒后:" + object);
// 7秒后获取
Thread.sleep(4000);
object = redisTemplate.opsForHash().get("user", "name");
System.out.println("7秒后:" + object);
System.out.println("-------jedisPool配置使用--redisTemplate--进行操作end---------------\n");
//-------jedisPool配置使用--redisTemplate--进行操作end-------------// //-------jedisPool配置使用----Jedis----进行操作Start-------------//
System.out.println("-------jedisPool配置使用Jedis的进行操作Start-------------");
Jedis jedis = jedisPool.getResource();
System.out.println("服务器IP地址:"+jedis.configGet("bind"));
/*hash api:hset*/
jedis.hset("me", "name", "xzh");
System.out.println("jedis.hset(me, name, xzh):" + jedis.hget("me", "name")); /*hash api:hmset*/
student.put("naem","xzh");
student.put("stid", "1");
jedis.hmset("student", student); //关闭连接
if(jedis != null)
{
student.clear();
jedisPool.close();
}
System.out.println("-------jedisPool配置使用Jedis的进行操作end--------------\n");
//-------jedisPool配置使用----Jedis----进行操作end-------------//
}
}

运行结果:运行之前先搭建号redis缓存服务,右键点击方法名,选择则“Run As”→“JUnit Test”即可

......
-------jedisPool配置使用--redisTemplate--进行操作Start-------------
3秒后:rhwayfun
7秒后:null
-------jedisPool配置使用--redisTemplate--进行操作end---------------

-------jedisPool配置使用Jedis的进行操作Start-------------
服务器IP地址:[bind, 127.0.0.1 192.168.248.85]
jedis.hset(me, name, xzh):xzh
-------jedisPool配置使用Jedis的进行操作end--------------

redis.RedisTesttestPutAndGet
rhwayfun

右键点击方法名,选择则“Run As”→“JUnit Test”即可

Redis入门实例(Redis+Sprint+maven创建工程)的更多相关文章

  1. 用maven创建工程

    用maven创建工程 开始 mvn archetype:generate 遇到问题:冗长的工程原型列表和等待时间 改进 mvn archetype:generate -DarchetypeCatalo ...

  2. 设置maven创建工程的jdk编译版本

    方式一:在maven的主配置文件中指定创建工程时使用jdk1.8版本 <profile> <id>jdk-1.8</id> <activation> & ...

  3. 设置通过Maven创建工程的JDK版本

    在eclipse中创建的Maven工程默认的运行环境为JDK1.5,如果想修改JDK的版本,无非是右键项目点击Build Path->Configure Build Path修改JDK信息-&g ...

  4. Redis 入门之Redis简介

    Reids 是一个开源的高性能键值对数据库.它通过多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存.队列系统等不同的角色. 1.Reids的诞生 Redis到底是在 ...

  5. Redis入门笔记-redis内部数据结构(01)

    redis是一个轻量级的Nodsql数据库,使用kev-value的形式存储数据,在redis的世界里,没有整数.浮点数等概念,大多数情况下数据以字符串形式展现,偶尔会出现Long类型数据的场景. 一 ...

  6. 使用maven创建工程报错Could not resolve archetype org.apache.maven.archetype

    错误: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:1.1 from any ...

  7. Maven创建工程 WEB

    http://www.zuidaima1.com/blog/1618180875144192.htm http://www.zuidaima1.com/blog/1618162161323008.ht ...

  8. redis入门(二)

    目录 redis入门(二) 前言 持久化 RDB AOF 持久化文件加载 高可用 哨兵 流程 安装部署 配置技巧 集群 原理 集群搭建 参考文档 redis入门(二) 前言 在redis入门(一)简单 ...

  9. redis入门(三)

    目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 re ...

随机推荐

  1. linux下定时任务的工具crontab的用法

    Linux计划任务工具cron用法详解 linux下大名鼎鼎的计划任务工具crontab的使用介绍baidu.google上多得让人眼花缭乱,本着“天下文章一大抄”的觉悟,加上本人日常工作中总结的使用 ...

  2. (转)MySQL性能调优my.cnf详解

    MySQL性能调优my.cnf详解 https://blog.linuxeye.cn/379.html http://blog.csdn.net/orichisonic/article/details ...

  3. Git学习系列之经典的Git开发过程

     前言 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上 ...

  4. 自定义控件如何给特殊类型的属性添加默认值 z(转)

    自定义控件如何给特殊类型的属性添加默认值 z 定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就 ...

  5. first post

    post

  6. 理解 Azure 虚拟机的性能监视

    随着越来越多的用户将生产应用迁移到云平台,一些传统 IT 的运维功能也相应的需要改变,例如监控,备份等等.我们希望通过这一系列的文章来协助用户更好的理解在 Azure 云平台上实现资源监控的方法. 在 ...

  7. Git - 远程库的创建与认证

    前些日子因为某些原因,需要在windows上创建一个remote仓库. 由于实在是太麻烦而且时间紧急,就直接用了gitstack. 发现这个东西居然需要付费,未认证时只能创建两个用户. 其实对我而言足 ...

  8. 2017年12月16日 ASP.NET基本用法

    ASP.NET初级添加 利用css代码跟ASP.NET还有Javascript原生,LinQ来写增跟展示数据 首先介绍一个非常好用的控件,灵活并且循环展示数据库里面的数据 <asp:Repeat ...

  9. Java 基础(2)——编译运行 & 规范

    上节学到 Java 的编译与运行,我们已经学会了怎么去执行一个写好(假装我们已经会写了)的代码,这篇当然要试试手啦 O(∩_∩)O 哈哈~ 小试一下 新建一个 HelloAhanWhite.java ...

  10. jasperreports+iReport+jatoolsPrinter制作报表笔记

    此文章是基于 EasyUI+Knockout实现经典表单的查看.编辑 一. 准备工作 1. 点击此下载相关的文件,并把 ims 文件夹放到 ims 工程对应的路劲下 2. 参考网址:杰创打印控件 二. ...