一、首先添加maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
二、在spring boot application properties文件中添加配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.timeout=10000
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
三、写一个Redis公共的操作类
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.serializer.SerializationException;
import org.springframework.stereotype.Service;
@Service
public class RedisUtil {
private static final String REDIS_KEY = "test";
@Autowired
private RedisTemplate redisTemplate;
/**
* 通过redisTemplate实现ValueOperations接口,调用其set方法
* 实现redis添加键值对
* @param key
* @param value
*/
public void setKeyValue(String key, Object value) {
ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
valueOperations.set(getKey(key), value);
}
/**
* 通过redisTemplate实现ValueOperations接口,调用其get方法
* 根据key查询数据
* @param key
* @return
*/
public Object getValue(String key) {
ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
return valueOperations.get(getKey(key));
}
/**
* 通过redisTemplate的delete
* 根据key删除redis中的键值对
* @param key
*/
public void delValue(String key) {
redisTemplate.delete(getKey(key));
}
/**
* 判断redis是否存在key
*
* @param key
* @return
*/
public boolean exists(final String key) {
Object object = getValue(getKey(key));
if (object != null) {
return true;
} else {
return false;
}
}
/**
* 调用该方法生成key
*
* @param keys
* @return
*/
public String getKeys(Object... keys) {
StringBuilder sb = new StringBuilder();
for (Object source: keys){
sb.append(source);
sb.append(":");
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
/**
* 每个系统设置自定义的redisKey
* 避免key重复,如:多个系统相同的用户都是用同一个redis缓存
* 在多在PC调用的时候就会出现序列化不一致
* @param keys
* @return
*/
private String getKey(Object... keys) {
StringBuilder sb = new StringBuilder(REDIS_KEY);
for (Object source : keys) {
sb.append(source);
sb.append(":");
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
}