package com.tanpu.community.service; import com.tanpu.common.exception.BizException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.util.concurrent.TimeUnit; @Slf4j @Service public class RedisService { // todo prefix @Autowired private RedisTemplate<String, Object> redisTemplate; public boolean existsKey(String key) { return redisTemplate.hasKey(key); } /** * set */ public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public void set(String key, Object value, long time, TimeUnit timeUnit) { redisTemplate.opsForValue().set(key, value, time, timeUnit); } /** * get */ public String getString(String key) { Object v = redisTemplate.opsForValue().get(key); return v == null ? null : (String) v; } public Integer getInteger(String key) { Object v = redisTemplate.opsForValue().get(key); return v == null ? null : (Integer) v; } public Long getLong(String key) { Object v = redisTemplate.opsForValue().get(key); return v == null ? null : (Long) v; } /** * incr */ public long incr(String key, Long delta) { if (delta < 0) { throw new BizException("递增因子必须大于0"); } return redisTemplate.opsForValue().increment(key, delta); } /** * incr */ public long decr(String key, Long delta) { if (delta < 0) { throw new BizException("递减因子必须大于0"); } return redisTemplate.opsForValue().decrement(key, delta); } }