2 changed files with 263 additions and 8 deletions
@ -0,0 +1,263 @@ |
|||
package org.dromara.common.redis.utils; |
|||
|
|||
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.List; |
|||
import java.util.Set; |
|||
import java.util.concurrent.TimeUnit; |
|||
|
|||
/** |
|||
* @author sean |
|||
* @version 1.0 |
|||
* @date 2022/4/19 |
|||
*/ |
|||
@Component |
|||
public class RedisOpsUtils { |
|||
|
|||
private static RedisTemplate<String, Object> redisTemplate; |
|||
|
|||
@Autowired |
|||
public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) { |
|||
RedisOpsUtils.redisTemplate = redisTemplate; |
|||
} |
|||
|
|||
/** |
|||
* HSET |
|||
* @param key |
|||
* @param field |
|||
* @param value |
|||
*/ |
|||
public static void hashSet(String key, String field, Object value) { |
|||
redisTemplate.opsForHash().put(key, field, value); |
|||
} |
|||
|
|||
/** |
|||
* HGET |
|||
* @param key |
|||
* @param field |
|||
* @return |
|||
*/ |
|||
public static Object hashGet(String key, String field) { |
|||
return redisTemplate.opsForHash().get(key, field); |
|||
} |
|||
|
|||
/** |
|||
* HKEYS |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static Set<Object> hashKeys(String key) { |
|||
return redisTemplate.opsForHash().keys(key); |
|||
} |
|||
|
|||
/** |
|||
* HEXISTS |
|||
* @param key |
|||
* @param field |
|||
* @return |
|||
*/ |
|||
public static boolean hashCheck(String key, String field) { |
|||
return redisTemplate.opsForHash().hasKey(key, field); |
|||
} |
|||
|
|||
/** |
|||
* HDEL |
|||
* @param key |
|||
* @param fields |
|||
* @return |
|||
*/ |
|||
public static boolean hashDel(String key, Object[] fields) { |
|||
return redisTemplate.opsForHash().delete(key, fields) > 0; |
|||
} |
|||
|
|||
/** |
|||
* HLEN |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static long hashLen(String key) { |
|||
return redisTemplate.opsForHash().size(key); |
|||
} |
|||
|
|||
/** |
|||
* EXPIRE |
|||
* @param key |
|||
* @param timeout |
|||
* @return |
|||
*/ |
|||
public static boolean expireKey(String key, long timeout) { |
|||
return redisTemplate.expire(key, timeout, TimeUnit.SECONDS); |
|||
} |
|||
|
|||
/** |
|||
* SET |
|||
* @param key |
|||
* @param value |
|||
*/ |
|||
public static void set(String key, Object value) { |
|||
redisTemplate.opsForValue().set(key, value); |
|||
} |
|||
|
|||
/** |
|||
* GET |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static Object get(String key) { |
|||
return redisTemplate.opsForValue().get(key); |
|||
} |
|||
|
|||
/** |
|||
* SETEX |
|||
* @param key |
|||
* @param value |
|||
* @param expire |
|||
*/ |
|||
public static void setWithExpire(String key, Object value, long expire) { |
|||
redisTemplate.opsForValue().set(key, value, expire, TimeUnit.SECONDS); |
|||
} |
|||
|
|||
/** |
|||
* TTL |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static long getExpire(String key) { |
|||
return redisTemplate.getExpire(key, TimeUnit.SECONDS); |
|||
} |
|||
|
|||
/** |
|||
* EXISTS |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static boolean checkExist(String key) { |
|||
return redisTemplate.hasKey(key); |
|||
} |
|||
|
|||
/** |
|||
* DEL |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static boolean del(String key) { |
|||
return RedisOpsUtils.checkExist(key) && redisTemplate.delete(key); |
|||
} |
|||
|
|||
/** |
|||
* KEYS |
|||
* @param pattern |
|||
* @return |
|||
*/ |
|||
public static Set<String> getAllKeys(String pattern) { |
|||
return redisTemplate.keys(pattern); |
|||
} |
|||
|
|||
/** |
|||
* RPUSH |
|||
* @param key |
|||
* @param value |
|||
*/ |
|||
public static void listRPush(String key, Object... value) { |
|||
if (value.length == 0) { |
|||
return; |
|||
} |
|||
for (Object val : value) { |
|||
redisTemplate.opsForList().rightPush(key, val); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* LRANGE |
|||
* @param key |
|||
* @param start |
|||
* @param end |
|||
* @return |
|||
*/ |
|||
public static List<Object> listGet(String key, long start, long end) { |
|||
return redisTemplate.opsForList().range(key, start, end); |
|||
} |
|||
|
|||
/** |
|||
* LRANGE |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static List<Object> listGetAll(String key) { |
|||
return redisTemplate.opsForList().range(key, 0, -1); |
|||
} |
|||
|
|||
/** |
|||
* LLen |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static Long listLen(String key) { |
|||
return redisTemplate.opsForList().size(key); |
|||
} |
|||
|
|||
/** |
|||
* ZADD |
|||
* @param key |
|||
* @param value |
|||
* @param score |
|||
*/ |
|||
public static Boolean zAdd(String key, Object value, double score) { |
|||
return redisTemplate.opsForZSet().add(key, value, score); |
|||
} |
|||
|
|||
/** |
|||
* ZREM |
|||
* @param key |
|||
* @param value |
|||
*/ |
|||
public static Boolean zRemove(String key, Object... value) { |
|||
return redisTemplate.opsForZSet().remove(key, value) > 0; |
|||
} |
|||
/** |
|||
* ZRANGE |
|||
* @param key |
|||
* @param start |
|||
* @param end |
|||
* @return |
|||
*/ |
|||
public static Set<Object> zRange(String key, long start, long end) { |
|||
return redisTemplate.opsForZSet().range(key, start, end); |
|||
} |
|||
|
|||
/** |
|||
* ZRANGE |
|||
* @param key |
|||
* @return |
|||
*/ |
|||
public static Object zGetMin(String key) { |
|||
Set<Object> objects = zRange(key, 0, 0); |
|||
if (CollectionUtils.isEmpty(objects)) { |
|||
return null; |
|||
} |
|||
return objects.iterator().next(); |
|||
} |
|||
|
|||
/** |
|||
* ZSCORE |
|||
* @param key |
|||
* @param value |
|||
* @return |
|||
*/ |
|||
public static Double zScore(String key, Object value) { |
|||
return redisTemplate.opsForZSet().score(key, value); |
|||
} |
|||
|
|||
/** |
|||
* ZINCRBY |
|||
* @param key |
|||
* @param value |
|||
* @param delta |
|||
*/ |
|||
public static Double zIncrement(String key, Object value, double delta) { |
|||
return redisTemplate.opsForZSet().incrementScore(key, value, delta); |
|||
} |
|||
} |
Loading…
Reference in new issue