import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.data
.redis
.core
.RedisTemplate
;
import org
.springframework
.stereotype
.Component
;
import org
.springframework
.util
.CollectionUtils
;
import java
.util
.Collection
;
import java
.util
.List
;
import java
.util
.Map
;
import java
.util
.Set
;
import java
.util
.concurrent
.TimeUnit
;
@Component
public final class RedisUtil {
@Autowired
private RedisTemplate
<String,Object> redisTemplate
;
public Boolean
expire(String key
, Long time
) {
try {
if (time
> 0) {
redisTemplate
.expire(key
, time
, TimeUnit
.SECONDS
);
}
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Long
getExpire(String key
) {
return redisTemplate
.getExpire(key
, TimeUnit
.SECONDS
);
}
public Boolean
hasKey(String key
) {
try {
return redisTemplate
.hasKey(key
);
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
@SuppressWarnings("unchecked")
public void del(String
... key
) {
if (key
!= null
&& key
.length
> 0) {
if (key
.length
== 1) {
redisTemplate
.delete(key
[0]);
} else {
redisTemplate
.delete(CollectionUtils
.arrayToList(key
));
}
}
}
public Object
get(String key
) {
return key
== null
? null
: redisTemplate
.opsForValue().get(key
);
}
public Boolean
set(String key
, Object value
) {
try {
redisTemplate
.opsForValue().set(key
, value
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
set(String key
, Object value
, Long time
) {
try {
if (time
> 0) {
redisTemplate
.opsForValue().set(key
, value
, time
, TimeUnit
.SECONDS
);
} else {
set(key
, value
);
}
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Long
incr(String key
, Long delta
) {
if (delta
< 0) {
throw new RuntimeException("递增因子必须大于0");
}
return redisTemplate
.opsForValue().increment(key
, delta
);
}
public Long
decr(String key
, Long delta
) {
if (delta
< 0) {
throw new RuntimeException("递减因子必须大于0");
}
return redisTemplate
.opsForValue().increment(key
, -delta
);
}
public Object
hget(String key
, String item
) {
return redisTemplate
.opsForHash().get(key
, item
);
}
public Map
<Object, Object> hmget(String key
) {
return redisTemplate
.opsForHash().entries(key
);
}
public Boolean
hmset(String key
, Map
<String, Object> map
) {
try {
redisTemplate
.opsForHash().putAll(key
, map
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
hmset(String key
, Map
<String, Object> map
, Long time
) {
try {
redisTemplate
.opsForHash().putAll(key
, map
);
if (time
> 0) {
expire(key
, time
);
}
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
hset(String key
, String item
, Object value
) {
try {
redisTemplate
.opsForHash().put(key
, item
, value
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
hset(String key
, String item
, Object value
, Long time
) {
try {
redisTemplate
.opsForHash().put(key
, item
, value
);
if (time
> 0) {
expire(key
, time
);
}
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public void hdel(String key
, Object
... item
) {
redisTemplate
.opsForHash().delete(key
, item
);
}
public Boolean
hHasKey(String key
, String item
) {
return redisTemplate
.opsForHash().hasKey(key
, item
);
}
public double hincr(String key
, String item
, double by
) {
return redisTemplate
.opsForHash().increment(key
, item
, by
);
}
public double hdecr(String key
, String item
, double by
) {
return redisTemplate
.opsForHash().increment(key
, item
, -by
);
}
public Set
<Object> sGet(String key
) {
try {
return redisTemplate
.opsForSet().members(key
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Boolean
sHasKey(String key
, Object value
) {
try {
return redisTemplate
.opsForSet().isMember(key
, value
);
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Long
sSet(String key
, Object
... values
) {
try {
return redisTemplate
.opsForSet().add(key
, values
);
} catch (Exception e
) {
e
.printStackTrace();
return 0L
;
}
}
public Long
sSetAndTime(String key
, Long time
, Object
... values
) {
try {
Long count
= redisTemplate
.opsForSet().add(key
, values
);
if (time
> 0)
expire(key
, time
);
return count
;
} catch (Exception e
) {
e
.printStackTrace();
return 0L
;
}
}
public Long
sGetSetSize(String key
) {
try {
return redisTemplate
.opsForSet().size(key
);
} catch (Exception e
) {
e
.printStackTrace();
return 0L
;
}
}
public Long
setRemove(String key
, Object
... values
) {
try {
Long count
= redisTemplate
.opsForSet().remove(key
, values
);
return count
;
} catch (Exception e
) {
e
.printStackTrace();
return 0L
;
}
}
public Object
leftPop(String key
){
try {
return redisTemplate
.opsForList().leftPop(key
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Object
rightPop(String key
){
try {
return redisTemplate
.opsForList().rightPop(key
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Object
leftPush(String key
,Object o
){
try {
return redisTemplate
.opsForList().leftPush(key
,o
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Object
rightPush(String key
,Object o
){
try {
return redisTemplate
.opsForList().rightPush(key
,o
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Object
leftPushAll(String key
,Collection collection
){
try {
return redisTemplate
.opsForList().leftPushAll(key
,collection
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Object
rightPushAll(String key
,Collection collection
){
try {
return redisTemplate
.opsForList().rightPushAll(key
,collection
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public List
<Object> lrange(String key
, Long start
, Long end
) {
try {
return redisTemplate
.opsForList().range(key
, start
, end
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Long
lsize(String key
) {
try {
return redisTemplate
.opsForList().size(key
);
} catch (Exception e
) {
e
.printStackTrace();
return 0L
;
}
}
public Object
lGetIndex(String key
, Long index
) {
try {
return redisTemplate
.opsForList().index(key
, index
);
} catch (Exception e
) {
e
.printStackTrace();
return null
;
}
}
public Boolean
lSet(String key
, Object value
) {
try {
redisTemplate
.opsForList().rightPush(key
, value
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
lSet(String key
, Object value
, Long time
) {
try {
redisTemplate
.opsForList().rightPush(key
, value
);
if (time
> 0)
expire(key
, time
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
lSet(String key
, List
<Object> value
) {
try {
redisTemplate
.opsForList().rightPushAll(key
, value
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
lSet(String key
, List
<Object> value
, Long time
) {
try {
redisTemplate
.opsForList().rightPushAll(key
, value
);
if (time
> 0)
expire(key
, time
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Boolean
lUpdateIndex(String key
, Long index
, Object value
) {
try {
redisTemplate
.opsForList().set(key
, index
, value
);
return true;
} catch (Exception e
) {
e
.printStackTrace();
return false;
}
}
public Long
lRemove(String key
, Long count
, Object value
) {
try {
Long remove
= redisTemplate
.opsForList().remove(key
, count
, value
);
return remove
;
} catch (Exception e
) {
e
.printStackTrace();
return 0L
;
}
}
}
转载请注明原文地址:https://tech.qufami.com/read-12005.html