目录结构
pom.xml
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
redis.properties
#访问地址
redis.host=192.168.126.130
#访问端口
redis.port=6379
#注意,如果没有password,此处不设置值,但这一项要保留
redis.pass=123456
#超时时间
redis.timeout=60
#使用哪个数据库
redis.default.db=0
#最大空闲时间,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
redis.maxIdle=300
#连接池的最大数据库连接数。设为0表示无限制
redis.maxActive=600
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
redis.maxWait=1000
#在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
redis.testOnBorrow=true
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:property-placeholder location="classpath:redis.properties"/>
<!-- 配置JedisPoolConfig实例 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxActive" value="${redis.maxActive}" />
<property name="maxWait" value="${redis.maxWait}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
<!-- 配置JedisPool实例 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy">
<constructor-arg ref="jedisPoolConfig" />
<constructor-arg value="${redis.host}" />
<constructor-arg value="${redis.port}" />
<constructor-arg value="${redis.timeout}" />
<constructor-arg value="${redis.pass}" />
<constructor-arg value="${redis.default.db}" />
</bean>
<bean id="redisUtil" class="com.luheng.util.RedisUtil">
<property name="jedisPool" ref="jedisPool" />
</bean>
</beans>
RedisUtil.java
package com.luheng.util;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
public class RedisUtil {
private JedisPool jedisPool;
public void setJedisPool(JedisPool jedisPool) {
this.jedisPool = jedisPool;
}
//添加
public void set(String key, String value){
Jedis jedis = this.jedisPool.getResource();
jedis.set(key, value);
this.jedisPool.returnResource(jedis);
}
//添加,带超时时间
public void setex(String key, int seconds, String value){
Jedis jedis = this.jedisPool.getResource();
jedis.setex(key, seconds, value);
this.jedisPool.returnResource(jedis);
}
//获取
public String get(String key){
Jedis jedis = this.jedisPool.getResource();
String value = jedis.get(key);
this.jedisPool.returnResource(jedis);
return value;
}
//查看某个键是否存在
public boolean exists(String key){
Jedis jedis = this.jedisPool.getResource();
Boolean exists = jedis.exists(key);
this.jedisPool.returnResource(jedis);
return exists;
}
//查看超时时间
public Long ttl(String key){
Jedis jedis = this.jedisPool.getResource();
Long ttl = jedis.ttl(key);
this.jedisPool.returnResource(jedis);
return ttl;
}
//删除
public void del(String key){
Jedis jedis = this.jedisPool.getResource();
jedis.del(key);
this.jedisPool.returnResource(jedis);
}
}
Test.java
package com.luheng.test;
import com.luheng.util.RedisUtil;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
RedisUtil redisUtil = (RedisUtil)applicationContext.getBean("redisUtil");
redisUtil.set("username", "fengqing");
String username = redisUtil.get("username");
System.out.println(username);
}
}