package com.dji.sample.component.redis; 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 { @Autowired private RedisTemplate redisTemplate; /** * HSET * @param key * @param field * @param value */ public void hashSet(String key, String field, Object value) { redisTemplate.opsForHash().put(key, field, value); } /** * HGET * @param key * @param field * @return */ public Object hashGet(String key, String field) { return redisTemplate.opsForHash().get(key, field); } /** * HKEYS * @param key * @return */ public Set hashKeys(String key) { return redisTemplate.opsForHash().keys(key); } /** * HEXISTS * @param key * @param field * @return */ public boolean hashCheck(String key, String field) { return redisTemplate.opsForHash().hasKey(key, field); } /** * HDEL * @param key * @param fields * @return */ public boolean hashDel(String key, Object[] fields) { return redisTemplate.opsForHash().delete(key, fields) > 0; } /** * EXPIRE * @param key * @param timeout * @return */ public boolean expireKey(String key, long timeout) { return redisTemplate.expire(key, timeout, TimeUnit.SECONDS); } /** * SET * @param key * @param value */ public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } /** * GET * @param key * @return */ public Object get(String key) { return redisTemplate.opsForValue().get(key); } /** * SETEX * @param key * @param value * @param expire */ public void setWithExpire(String key, Object value, long expire) { redisTemplate.opsForValue().set(key, value, expire, TimeUnit.SECONDS); } /** * TTL * @param key * @return */ public long getExpire(String key) { return redisTemplate.getExpire(key, TimeUnit.SECONDS); } /** * EXISTS * @param key * @return */ public boolean checkExist(String key) { return redisTemplate.hasKey(key); } /** * DEL * @param key * @return */ public boolean del(String key) { return this.checkExist(key) && redisTemplate.delete(key); } /** * KEYS * @param pattern * @return */ public Set getAllKeys(String pattern) { return redisTemplate.keys(pattern); } /** * RPUSH * @param key * @param value */ public 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 List listGet(String key, long start, long end) { return redisTemplate.opsForList().range(key, start, end); } /** * LRANGE * @param key * @return */ public List listGetAll(String key) { return redisTemplate.opsForList().range(key, 0, -1); } /** * LLen * @param key * @return */ public Long listLen(String key) { return redisTemplate.opsForList().size(key); } /** * ZADD * @param key * @param value * @param score */ public Boolean zAdd(String key, Object value, double score) { return redisTemplate.opsForZSet().add(key, value, score); } /** * ZREM * @param key * @param value */ public Boolean zRemove(String key, Object... value) { return redisTemplate.opsForZSet().remove(key, value) > 0; } /** * ZRANGE * @param key * @param start * @param end * @return */ public Set zRange(String key, long start, long end) { return redisTemplate.opsForZSet().range(key, start, end); } /** * ZRANGE * @param key * @return */ public Object zGetMin(String key) { Set objects = zRange(key, 0, 0); if (CollectionUtils.isEmpty(objects)) { return null; } return objects.iterator().next(); } /** * ZSCORE * @param key * @param value * @return */ public Double zScore(String key, Object value) { return redisTemplate.opsForZSet().score(key, value); } }