Redis的应用非常广泛,用法也是多种多样,对于Java开发者而言,经常会使用到redis到项目中,可能是普通的java项目、Maven项目或者pring整合redis,SpringBoot整合redis等,下面潘老师带大家一起来看一下各种整合使用场景!
1、我这里使用的Redis是安装在Windows系统中的5.0.9版本,和Linux版本操作起来方法一样(Linux系统注意要关闭防火墙)。如果你还没有安装,可以参考:Redis单机版安装步骤图文教程(Linux和Windows)
2、非Maven项目请先准备jar包(自行网上下载,建议去阿里云Maven仓库或mvnrepository仓库查找下载:
1)jedis-2.9.0.jar,类似于mysql驱动包
2)commons-pool2-2.8.1.jar,类似于数据库连接池包
1)不整合连接池
新建普通Java项目,将jedis-2.9.0.jar导入到buildpath中,然后操作代码如下:
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class TestRedis {
@Test
public void test1() {
// 1. 创建Jedis 对象-设置IP地址和端口
Jedis jedis = new Jedis("127.0.0.1", 6379);
// 2. 保存数据
jedis.set("myblog", "panziye.com");
// 3. 根据key获取数据
String value = jedis.get("myblog");
System.out.println(value);
// 4.释放资源
jedis.close();
}
}
运行结果:

2)整合连接池
和数据库连接池整合很类似,再将commons-pool2-2.8.1.jar添加至buildpath中,使用代码如下:
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class TestRedis {
@Test
public void test2() {
// 获取连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
// 设置最大连接数
config.setMaxTotal(30);
// 设置最大的空闲连接数
config.setMaxIdle(10);
// 获得连接池: JedisPool jedisPool = new JedisPool(poolConfig,host,port);
JedisPool jedisPool = new JedisPool(config,"127.0.0.1",6379);
// 获得核心对象:jedis
Jedis jedis = null;
try{
// 通过连接池来获得连接
jedis = jedisPool.getResource();
// 设置数据
jedis.set("myname","panziye");
// 获取数据
String myname = jedis.get("myname");
System.out.println(myname);
} catch (Exception e){
e.printStackTrace();
} finally {
// 释放资源
if(jedis != null){
jedis.close();
}
// 释放连接池
if(jedisPool != null){
jedisPool.close();
}
}
}
}
普通的Maven项目使用代码案例和上面一样,不过就是jar包可以通过在pom.xml中引入坐标即可,以下是这两个包的中央仓库坐标:
jedis-2.9.0.jar的坐标:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
commons-pool2-2.8.1.jar的坐标:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.8.1</version>
</dependency>
在这里我们基于之前的搭建好的SSM项目进行整合,之前的SSM项目参考:Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
1、下载相关jar包,并导入到lib目录
jedis-2.9.0.jar、commons-pool2-2.8.1.jar和spring-data-redis-1.7.2.RELEASE.jar
如果用Maven,则spring-data-redis-1.7.2.RELEASE.jar的中央仓库坐标为:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.2.RELEASE</version>
</dependency>
2、在src目录下新建redis.properties配置文件,具体配置如下:
redis.host=127.0.0.1 redis.port=6379 redis.maxIdle=300 redis.maxWaitMillis=1000 redis.timeout=100000 redis.maxTotal=600 redis.testOnBorrow=true redis.testOnReturn=true
3、在spring核心配置文件spring.xml中新增如下配置:
1)引入redis.properties文件,由于我之前引入过jdbc.properties,只需在后面加一下即可。
<context:property-placeholder location="classpath:jdbc.properties,classpath:redis.properties"/>
2)整合redis配置:
<!--设置连接池-->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="${redis.maxIdle}"/>
<property name="maxTotal" value="${redis.maxTotal}" />
<property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
<property name="testOnReturn" value="${redis.testOnReturn}" />
</bean>
<!--设置链接属性-->
<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="${redis.host}" />
<property name="port" value="${redis.port}" />
<!-- 此处我的redis密码为空 -->
<property name="password" value="" />
<property name="timeout" value="${redis.timeout}"></property>
<property name="poolConfig" ref="poolConfig" />
</bean>
<!-- Jedis模板配置 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
4、新建RedisController.java测试代码如下:
@Controller
public class RedisController {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@RequestMapping("set")
public String setTest(){
//设置
redisTemplate.opsForValue().set("username", "潘子夜");
//获取
System.out.println(redisTemplate.opsForValue().get("username"));
return "success";
}
}
5、运行浏览器访问,发现能成功设置与获取,在此不做展示。
在这里我们基于之前搭建的案例操作:IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境
1、pom.xml新增redis依赖:
<!-- 支持redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、application.properties新增redis相关配置:
#配置redis # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=200 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring.redis.pool.max-idle=10 # 连接池中的最小空闲连接 spring.redis.pool.min-idle=0 # 连接超时时间(毫秒) spring.redis.timeout=1000
3、新建测试代码,运行结果如图:
@Controller
public class RedisController {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@RequestMapping("/redis")
public String redis(){
redisTemplate.opsForValue().set("password","www.panziye.com");
System.out.println(redisTemplate.opsForValue().get("password"));
return "success";
}
}
以上就是各种整合redis的情况,如果有疑问或者建议,请留言评论!







