<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@Component
public class RedisUtils {
@Resource
private RedisTemplate<String, Object> redisTemplate;
public void set(String key, Object value, long timeout) {
redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
}
public Object get(String key) {
return redisTemplate.opsForValue().get(key);
}
public boolean delete(String key) {
return redisTemplate.delete(key);
}
public boolean exists(String key) {
return redisTemplate.hasKey(key);
}
public void hashSet(String key, Map<String, Object> map, long timeout) {
redisTemplate.opsForHash().putAll(key, map);
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
public Object hashGet(String key, String hashKey) {
return redisTemplate.opsForHash().get(key, hashKey);
}
public void listPush(String key, Object value, long timeout) {
redisTemplate.opsForList().rightPush(key, value);
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
public List<Object> listGet(String key, long start, long end) {
return redisTemplate.opsForList().range(key, start, end);
}
public void setAdd(String key, Object[] values, long timeout) {
redisTemplate.opsForSet().add(key, values);
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
public Long setRemove(String key, Object[] values) {
return redisTemplate.opsForSet().remove(key, values);
}
public void zSetAdd(String key, Object value, double score, long timeout) {
redisTemplate.opsForZSet().add(key, value, score);
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
public List<Object> zSetRange(String key, long start, long end) {
return (List<Object>) redisTemplate.opsForZSet().range(key, start, end);
}
public Set<String> getAllKeys() {
return redisTemplate.keys("*");
}
public void deleteAllKeys() {
Set<String> keys = getAllKeys();
redisTemplate.delete(keys);
}
public Map<String, Object> getAllKeyValues() {
Map<String, Object> map = new HashMap<>();
Set<String> keys = getAllKeys();
if (!CollectionUtils.isEmpty(keys)) {
List<Object> values = redisTemplate.opsForValue().multiGet(keys);
for (int i = 0; i < keys.size(); i++) {
map.put(keys.toArray(new String[0])[i], values.get(i));
}
}
return map;
}
}