redis的使用在springboot中
一,引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
二,添加配置文件
spring.redis.database=0
spring.redis.host=*.*.*.*
spring.redis.port=6379
spring.redis.password=123456
spring.redis.timeout=3000
spring.redis.pool.max-active=8
spring.redis.pool.max-idle=8
spring.redis.pool.max-wait=-1
spring.redis.pool.min-idle=0
三,实战下
package com.yomob.api.service.impl;
import com.yomob.api.service.RedisService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@Service
public class RedisServiceImpl implements RedisService {
private static Logger logger = Logger.getLogger(RedisServiceImpl.class);
@Autowired
private JedisPool jedisPool;
@Override
public Jedis getResource() {
return jedisPool.getResource();
}
@SuppressWarnings("deprecation")
@Override
public void returnResource(Jedis jedis) {
if (jedis != null) {
jedisPool.returnResourceObject(jedis);
}
}
@Override
public void set(String key, String value) {
Jedis jedis = null;
try {
jedis = getResource();
jedis.set(key, value);
jedis.expire(key, 60*5);
logger.info("Redis set success - " + key + ", value:" + value + ", expire time is 60s");
} catch (Exception e) {
e.printStackTrace();
logger.error("Redis set error: " + e.getMessage() + " - " + key + ", value:" + value);
} finally {
returnResource(jedis);
}
}
@Override
public String getStringByKey(String key) {
String result = null;
Jedis jedis = null;
try {
jedis = getResource();
result = jedis.get(key);
logger.info("Redis get success - " + key + ", value:" + result);
} catch (Exception e) {
e.printStackTrace();
logger.error("Redis set error: " + e.getMessage() + " - " + key + ", value:" + result);
} finally {
returnResource(jedis);
}
return result;
}
@Override
public void putAll(String keyHead, Map<String, Map<String, String>> map) {
Jedis jedis = getResource();
Set<String> keys = map.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()){
String keyOut = it.next();
Map<String, String> mapInner = map.get(keyOut);
Iterator<String> itInner = mapInner.keySet().iterator();
while(itInner.hasNext()){
String field = itInner.next();
String value = map.get(keyOut).get(field);
jedis.hset(keyHead + keyOut,field,value);
}
}
}
@Override
public void setForUsers(String key, String value) {
Jedis jedis = null;
try {
jedis = getResource();
jedis.set(key, value);
logger.info("Redis set success - " + key + ", value:" + value);
} catch (Exception e) {
e.printStackTrace();
logger.error("Redis set error: " + e.getMessage() + " - " + key + ", value:" + value);
} finally {
returnResource(jedis);
}
}
}