spring boot 一切从简,连整合redis都这么简单
第一步,引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
第二步,自动加载RedisTemplate
@Resource
private RedisTemplate<String, Object> redisTemplate;
第三步,使用
@Override
public Gift getGiftById(long id) {
try {
Object obj = redisTemplate.opsForValue().get("gift:" + id);
if (null != obj) {
logger.error("这一次从缓存里取。。。。。。");
return (Gift) obj;
}
Gift gift = giftMapper.getGiftById(id);
logger.error("这一次从数据库里取。。。。。。。");
redisTemplate.opsForValue().set("gift:" + id, gift);
return gift;
}catch (Exception e) {
logger.error("",e);
}
return null;
}
不过,我刚从头到尾屡了一遍jedis。这怎么又出了个opsFor.....
还是提供一下,我自己的RedisProvider吧。
@Component
public class RedisProvider {
private static final Logger logger = Logger.getLogger(RedisProvider.class);
private static JedisPool pool;
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
public RedisProvider() {
}
@PostConstruct
public void init() {
try {
logger.error("init..........host:" + host);
logger.error("init..........port:" + port);
this.pool = new JedisPool(host, port);
} catch (Exception e) {
logger.error("初始化redis异常", e);
}
}
@PreDestroy
public void destory() {
try {
if (null != pool) {
pool.destroy();
}
} catch (Exception e) {
logger.error("销毁redis异常", e);
}
}
/**
* 5种数据类型的操作,String、Hash、List、Set、ZSet
* @return
*/
public void setStringData(String key, String value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.set(key, value);
} catch (Exception e) {
logger.error("error", e);
} finally {
if (null != jedis) {
try {
jedis.close();
} catch (Exception e) {
logger.error("error", e);
}
}
}
}
public void setStringBytes(String key, byte[] value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.set(key.getBytes(StandardCharsets.UTF_8), value);
} catch (Exception e) {
logger.error("error", e);
} finally {
if (null != jedis) {
try {
jedis.close();
} catch (Exception e) {
logger.error("error", e);
}
}
}
}
public String getStringData(String key) {
Jedis jedis = null;
String getString = "";
try {
jedis = pool.getResource();
getString = jedis.get(key);
} catch (Exception e) {
logger.error("error", e);
} finally {
if (null != jedis) {
try {
jedis.close();
} catch (Exception e) {
logger.error("error", e);
}
}
}
return getString;
}
public byte[] getStringBytes(String key) {
Jedis jedis = null;
byte[] retBytes = null;
try {
jedis = pool.getResource();
retBytes = jedis.get(key.getBytes(StandardCharsets.UTF_8));
} catch (Exception e) {
logger.error("error", e);
} finally {
if (null != jedis) {
try {
jedis.close();
} catch (Exception e) {
logger.error("error", e);
}
}
}
return retBytes;
}
/**
* String类型的setEx
* @param key
* @param value
* @param seconds
*/
public void setStringEx(String key, String value, int seconds) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.setex(key, seconds, value);
} catch (Exception e) {
logger.error("error", e);
} finally {
if (null != jedis) {
try {
jedis.close();
} catch (Exception e) {
logger.error("error", e);
}
}
}
}
public void lPush(String key, String...value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.lpush(key,value);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if (null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error", e);
}
}
}
public void rPush(String key, String...value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.rpush(key,value);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if (null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error", e);
}
}
}
/**
* 用来清空list集合的所有元素
* @param key
*/
public void lTrimeAll(String key) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.del(key);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if (null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error", e);
}
}
}
public List<String> lRangeAll(String key){
Jedis jedis = null;
List<String> lrange = Collections.emptyList();
try {
jedis = pool.getResource();
lrange = jedis.lrange(key, 0, jedis.llen(key));
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if (null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error", e);
}
}
return lrange;
}
public List<String> lRange(String key, int start, int end){
Jedis jedis = null;
List<String> lrange = Collections.emptyList();
try {
jedis = pool.getResource();
lrange = jedis.lrange(key, 0, end);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if (null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error", e);
}
}
return lrange;
}
public void sAdd(String key, String value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.sadd(key,value);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if(null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error",e);
}
}
}
public Set<String> sMembers(String key) {
Jedis jedis = null;
Set<String> smembers = Collections.emptySet();
try {
jedis = pool.getResource();
smembers = jedis.smembers(key);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if(null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error",e);
}
}
return smembers;
}
/**
* 移除Set中的某个元素
* @param key
* @param value
*/
public void srem(String key, String value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.srem(key, value);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if(null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error",e);
}
}
}
public void zAdd(String key, double score, String value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.zadd(key, score, value);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if(null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error",e);
}
}
}
public Set<String> zRangeByScore(String key, double min, double max) {
Jedis jedis = null;
Set<String> set = Collections.emptySet();
try {
jedis = pool.getResource();
set = jedis.zrangeByScore(key, min, max);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if(null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error",e);
}
}
return set;
}
public void zRem(String key, String value){
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.zrem(key, value);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if(null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error",e);
}
}
}
public void zremrangeByScore (String key, double min, double max){
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.zremrangeByScore(key, min, max);
} catch (Exception e) {
logger.error("error", e);
} finally {
try {
if(null != jedis) {
jedis.close();
}
} catch (Exception e) {
logger.error("error",e);
}
}
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}