spring 整合 redis
pom.xml 配置如下
<dependency >
<groupId > org.springframework.data</groupId >
<artifactId > spring-data-redis</artifactId >
<version > 1.6.1.RELEASE</version >
</dependency >
<dependency >
<groupId > redis.clients</groupId >
<artifactId > jedis</artifactId >
<version > 2.7.3</version >
</dependency >
redis.config 配置如下
#redis配置
redis.host =222.128 .4 .xx
redis.port =6379
redis.password =xxx
redis.maxIdle =100
redis.maxActive =300
redis.maxWait =1000
redis.testOnBorrow =true
redis.timeout =100000
applicationContext.xml 配置如下
<bean id ="propertyConfigurer"
class ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
<property name ="locations" >
<list >
<value > classpath:datasource.properties</value >
<value > classpath:redis.properties</value >
</list >
</property >
</bean >
<bean id ="poolConfig" class ="redis.clients.jedis.JedisPoolConfig" >
<property name ="maxIdle" value ="${redis.maxIdle}" />
<property name ="maxWaitMillis" value ="${redis.maxWait}" />
<property name ="testOnBorrow" value ="${redis.testOnBorrow}" />
</bean >
<bean id ="connectionFactory" class ="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" >
<property name ="poolConfig" ref ="poolConfig" />
<property name ="port" value ="${redis.port}" />
<property name ="hostName" value ="${redis.host}" />
<property name ="password" value ="${redis.password}" />
<property name ="timeout" value ="${redis.timeout}" > </property >
</bean >
<bean id ="redisTemplate" class ="org.springframework.data.redis.core.RedisTemplate" >
<property name ="connectionFactory" ref ="connectionFactory" />
<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 >
<bean id ="redisUtil" class ="user.cnwap.leshare.admin.util.RedisUtil" >
<property name ="redisTemplate" ref ="redisTemplate" />
</bean >
redisUtil.java 代码如下
/**
- redis cache 工具类
-
*/
public final class RedisUtil {
private Logger logger = Logger.getLogger(RedisUtil.class);
private RedisTemplate<Serializable, Object> redisTemplate;
/**
- 批量删除对应的value
-
- @param keys
*/
public void remove (final String... keys) {
for (String key : keys) {
remove(key);
}
}
/**
- 批量删除key
-
- @param pattern
*/
public void removePattern (final String pattern) {
Set<Serializable> keys = redisTemplate.keys(pattern);
if (keys.size() > 0 )
redisTemplate.delete(keys);
}
/**
- 删除对应的value
-
- @param key
*/
public void remove (final String key) {
if (exists(key)) {
redisTemplate.delete(key);
}
}
/**
- 判断缓存中是否有对应的value
-
- @param key
- @return
*/
public boolean exists (final String key) {
return redisTemplate.hasKey(key);
}
/**
- 读取缓存
-
- @param key
- @return
*/
public Object get (final String key) {
Object result = null ;
ValueOperations<Serializable, Object> operations = redisTemplate
.opsForValue();
result = operations.get(key);
return result;
}
/**
- 写入缓存
-
- @param key
- @param value
- @return
*/
public boolean set (final String key, Object value) {
boolean result = false ;
try {
ValueOperations<Serializable, Object> operations = redisTemplate
.opsForValue();
operations.set(key, value);
result = true ;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
- 写入缓存
-
- @param key
- @param value
- @return
*/
public boolean set (final String key, Object value, Long expireTime) {
boolean result = false ;
try {
ValueOperations<Serializable, Object> operations = redisTemplate
.opsForValue();
operations.set(key, value);
redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
result = true ;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public void setRedisTemplate (
RedisTemplate<Serializable, Object> redisTemplate) {
this .redisTemplate = redisTemplate;
}
}
使用redis存取java对象,对象必须实现Serializable接口。