|
@@ -1,305 +1,305 @@
|
|
|
-package com.tiangua.star.util;
|
|
|
-
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.data.redis.core.RedisTemplate;
|
|
|
-import org.springframework.data.redis.core.ValueOperations;
|
|
|
-import org.springframework.data.redis.core.script.DefaultRedisScript;
|
|
|
-import org.springframework.data.redis.serializer.RedisSerializer;
|
|
|
-import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import java.io.Serializable;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.temporal.ChronoUnit;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-
|
|
|
-/**
|
|
|
- * redicache 工具类
|
|
|
- */
|
|
|
-@SuppressWarnings("unchecked")
|
|
|
-@Component
|
|
|
-public class RedisUtil {
|
|
|
- @SuppressWarnings("rawtypes")
|
|
|
- @Autowired
|
|
|
- public RedisTemplate redisTemplate;
|
|
|
-
|
|
|
- @Autowired(required = false)
|
|
|
- public void setRedisTemplate(RedisTemplate redisTemplate) {
|
|
|
- RedisSerializer stringSerializer = new StringRedisSerializer();
|
|
|
- redisTemplate.setKeySerializer(stringSerializer);
|
|
|
- redisTemplate.setValueSerializer(stringSerializer);
|
|
|
- redisTemplate.setHashKeySerializer(stringSerializer);
|
|
|
- redisTemplate.setHashValueSerializer(stringSerializer);
|
|
|
- this.redisTemplate = redisTemplate;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 批量删除对应的value
|
|
|
- *
|
|
|
- * @param keys
|
|
|
- */
|
|
|
- public void remove(final String... keys) {
|
|
|
- for (String key : keys) {
|
|
|
- remove(key);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 批量删除key
|
|
|
- *
|
|
|
- * @param pattern
|
|
|
- */
|
|
|
- public void removePattern(final String pattern) {
|
|
|
- Set<Serializable> keys = redisTemplate.keys(pattern + "*");
|
|
|
- if (keys.size() > 0)
|
|
|
- redisTemplate.delete(keys);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 删除对应的value
|
|
|
- *
|
|
|
- * @param key
|
|
|
- */
|
|
|
- public void remove(final String key) {
|
|
|
- if (exists(key)) {
|
|
|
- redisTemplate.delete(key);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 判断缓存中是否有对应的value
|
|
|
- *
|
|
|
- * @param key
|
|
|
- * @return
|
|
|
- */
|
|
|
- public boolean exists(final String key) {
|
|
|
- return redisTemplate.hasKey(key);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 读取缓存
|
|
|
- *
|
|
|
- * @param key
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String get(final String key) {
|
|
|
- Object result = null;
|
|
|
- redisTemplate.setValueSerializer(new StringRedisSerializer());
|
|
|
- ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
|
|
|
- result = operations.get(key);
|
|
|
- if (result == null) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- return result.toString();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * @param key
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Map<Integer, Integer> keysForLimit(String key) {
|
|
|
- Set valueSet = redisTemplate.keys(key);
|
|
|
- Map<Integer, Integer> resultMap = new HashMap<>();
|
|
|
- if (valueSet.isEmpty()) {
|
|
|
- return resultMap;
|
|
|
- } else {
|
|
|
- for (Object redisKey : valueSet) {
|
|
|
- Object value = redisTemplate.opsForValue().get(redisKey);
|
|
|
- String productId = redisKey.toString().split(":")[1];
|
|
|
- resultMap.put(Integer.valueOf(productId), Integer.valueOf(value.toString()));
|
|
|
- }
|
|
|
- return resultMap;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public Map<Integer, Integer> getCacheProduct(String key) {
|
|
|
- Map<Integer, Integer> map = new HashMap<>();
|
|
|
- Map entries = redisTemplate.opsForHash().entries(key);
|
|
|
- for (Object entryKey : entries.keySet()) {
|
|
|
- Object value = entries.get(entryKey);
|
|
|
- map.put(Integer.valueOf(entryKey.toString()), Integer.valueOf(value.toString()));
|
|
|
- }
|
|
|
- return map;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 写入缓存
|
|
|
- *
|
|
|
- * @param key
|
|
|
- * @param value
|
|
|
- * @return
|
|
|
- */
|
|
|
- public boolean set(final String key, Object value) {
|
|
|
- boolean result = false;
|
|
|
- try {
|
|
|
- ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
|
|
|
- operations.set(key, value);
|
|
|
- result = true;
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 写入缓存
|
|
|
- *
|
|
|
- * @param key
|
|
|
- * @param value
|
|
|
- * @param expireTime 分钟
|
|
|
- * @return
|
|
|
- */
|
|
|
- public boolean set(final String key, Object value, Long expireTime) {
|
|
|
- boolean result = false;
|
|
|
- try {
|
|
|
- ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
|
|
|
- operations.set(key, value);
|
|
|
- redisTemplate.expire(key, expireTime, TimeUnit.MINUTES);
|
|
|
- result = true;
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 设置Key 过期时间
|
|
|
- *
|
|
|
- * @param key
|
|
|
- * @param expireTime 分钟
|
|
|
- */
|
|
|
- public void expire(final String key, Long expireTime) {
|
|
|
- if (redisTemplate.hasKey(key)) {
|
|
|
- redisTemplate.expire(key, expireTime, TimeUnit.MINUTES);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void expireSECONDS(final String key, Long expireTime) {
|
|
|
- if (redisTemplate.hasKey(key)) {
|
|
|
- redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public boolean hmset(String key, Map<String, String> value) {
|
|
|
- boolean result = false;
|
|
|
- try {
|
|
|
- redisTemplate.opsForHash().putAll(key, value);
|
|
|
- result = true;
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- public Map<String, String> hmget(String key) {
|
|
|
- Map<String, String> result = null;
|
|
|
- try {
|
|
|
- result = redisTemplate.opsForHash().entries(key);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public boolean hmSetOne(String key, String code, String value) {
|
|
|
- boolean result = false;
|
|
|
- try {
|
|
|
- redisTemplate.opsForHash().put(key, code, value);
|
|
|
- result = true;
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- public Object hmGet(String key, String code) {
|
|
|
- return redisTemplate.opsForHash().get(key, code);
|
|
|
- }
|
|
|
-
|
|
|
- public Map hashEntries(String key){
|
|
|
- Map entries = redisTemplate.opsForHash().entries(key);
|
|
|
- return entries;
|
|
|
- }
|
|
|
-
|
|
|
- public void hmdel(String key, String removeKey) {
|
|
|
- try {
|
|
|
- redisTemplate.opsForHash().delete(key, removeKey);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public Long sadd(String key, Object... objects) {
|
|
|
- return redisTemplate.opsForSet().add(key, objects);
|
|
|
- }
|
|
|
-
|
|
|
- public Set smembers(String key) {
|
|
|
- return redisTemplate.opsForSet().members(key);
|
|
|
- }
|
|
|
-
|
|
|
- public void srem(String key, Object... value) {
|
|
|
- redisTemplate.opsForSet().remove(key, value);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * value类型key对应的值自增1
|
|
|
- *
|
|
|
- * @param key
|
|
|
- */
|
|
|
- public void incrementForValue(String key) {
|
|
|
- redisTemplate.opsForValue().increment(key);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public Boolean hasKey(String key) {
|
|
|
- return redisTemplate.hasKey(key);
|
|
|
- }
|
|
|
-
|
|
|
- public boolean hset(String key, Object item, Object value, long time) {
|
|
|
- try {
|
|
|
- redisTemplate.opsForHash().put(key, item, value);
|
|
|
- if (time > 0) {
|
|
|
- expireSECONDS(key, time);
|
|
|
- }
|
|
|
- return true;
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public boolean hSetIfAbsent(String key, Object item, Object value, long time) {
|
|
|
- try {
|
|
|
- redisTemplate.opsForHash().putIfAbsent(key, item, value);
|
|
|
- if (time > 0) {
|
|
|
- expireSECONDS(key, time);
|
|
|
- }
|
|
|
- return true;
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void setKeyCurrDayValid(String redisKey, Object value) {
|
|
|
- LocalDateTime tomorrow = LocalDateTime.now().plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
- long seconds = ChronoUnit.SECONDS.between(LocalDateTime.now(), tomorrow);
|
|
|
- redisTemplate.opsForValue().set(redisKey, value, seconds);
|
|
|
- }
|
|
|
-
|
|
|
- public Boolean hashHasKey(String redisKey, String key) {
|
|
|
- return redisTemplate.opsForHash().hasKey(redisKey,key);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public String incrementWithExpiry(String key, long expireSeconds, String luaScript) {
|
|
|
- DefaultRedisScript<Long> script = new DefaultRedisScript<>(luaScript, Long.class);
|
|
|
- return (String) redisTemplate.execute(script, redisTemplate.getStringSerializer(), redisTemplate.getValueSerializer(), Collections.singletonList(key), String.valueOf(expireSeconds));
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
+//package com.tiangua.star.util;
|
|
|
+//
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+//import org.springframework.data.redis.core.RedisTemplate;
|
|
|
+//import org.springframework.data.redis.core.ValueOperations;
|
|
|
+//import org.springframework.data.redis.core.script.DefaultRedisScript;
|
|
|
+//import org.springframework.data.redis.serializer.RedisSerializer;
|
|
|
+//import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
+//import org.springframework.stereotype.Component;
|
|
|
+//
|
|
|
+//import java.io.Serializable;
|
|
|
+//import java.time.LocalDateTime;
|
|
|
+//import java.time.temporal.ChronoUnit;
|
|
|
+//import java.util.Collections;
|
|
|
+//import java.util.HashMap;
|
|
|
+//import java.util.Map;
|
|
|
+//import java.util.Set;
|
|
|
+//import java.util.concurrent.TimeUnit;
|
|
|
+//
|
|
|
+///**
|
|
|
+// * redicache 工具类
|
|
|
+// */
|
|
|
+//@SuppressWarnings("unchecked")
|
|
|
+//@Component
|
|
|
+//public class RedisUtil {
|
|
|
+// @SuppressWarnings("rawtypes")
|
|
|
+// @Autowired
|
|
|
+// public RedisTemplate redisTemplate;
|
|
|
+//
|
|
|
+// @Autowired(required = false)
|
|
|
+// public void setRedisTemplate(RedisTemplate redisTemplate) {
|
|
|
+// RedisSerializer stringSerializer = new StringRedisSerializer();
|
|
|
+// redisTemplate.setKeySerializer(stringSerializer);
|
|
|
+// redisTemplate.setValueSerializer(stringSerializer);
|
|
|
+// redisTemplate.setHashKeySerializer(stringSerializer);
|
|
|
+// redisTemplate.setHashValueSerializer(stringSerializer);
|
|
|
+// this.redisTemplate = redisTemplate;
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 批量删除对应的value
|
|
|
+// *
|
|
|
+// * @param keys
|
|
|
+// */
|
|
|
+// public void remove(final String... keys) {
|
|
|
+// for (String key : keys) {
|
|
|
+// remove(key);
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 批量删除key
|
|
|
+// *
|
|
|
+// * @param pattern
|
|
|
+// */
|
|
|
+// public void removePattern(final String pattern) {
|
|
|
+// Set<Serializable> keys = redisTemplate.keys(pattern + "*");
|
|
|
+// if (keys.size() > 0)
|
|
|
+// redisTemplate.delete(keys);
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 删除对应的value
|
|
|
+// *
|
|
|
+// * @param key
|
|
|
+// */
|
|
|
+// public void remove(final String key) {
|
|
|
+// if (exists(key)) {
|
|
|
+// redisTemplate.delete(key);
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 判断缓存中是否有对应的value
|
|
|
+// *
|
|
|
+// * @param key
|
|
|
+// * @return
|
|
|
+// */
|
|
|
+// public boolean exists(final String key) {
|
|
|
+// return redisTemplate.hasKey(key);
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 读取缓存
|
|
|
+// *
|
|
|
+// * @param key
|
|
|
+// * @return
|
|
|
+// */
|
|
|
+// public String get(final String key) {
|
|
|
+// Object result = null;
|
|
|
+// redisTemplate.setValueSerializer(new StringRedisSerializer());
|
|
|
+// ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
|
|
|
+// result = operations.get(key);
|
|
|
+// if (result == null) {
|
|
|
+// return null;
|
|
|
+// }
|
|
|
+// return result.toString();
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * @param key
|
|
|
+// * @return
|
|
|
+// */
|
|
|
+// public Map<Integer, Integer> keysForLimit(String key) {
|
|
|
+// Set valueSet = redisTemplate.keys(key);
|
|
|
+// Map<Integer, Integer> resultMap = new HashMap<>();
|
|
|
+// if (valueSet.isEmpty()) {
|
|
|
+// return resultMap;
|
|
|
+// } else {
|
|
|
+// for (Object redisKey : valueSet) {
|
|
|
+// Object value = redisTemplate.opsForValue().get(redisKey);
|
|
|
+// String productId = redisKey.toString().split(":")[1];
|
|
|
+// resultMap.put(Integer.valueOf(productId), Integer.valueOf(value.toString()));
|
|
|
+// }
|
|
|
+// return resultMap;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Map<Integer, Integer> getCacheProduct(String key) {
|
|
|
+// Map<Integer, Integer> map = new HashMap<>();
|
|
|
+// Map entries = redisTemplate.opsForHash().entries(key);
|
|
|
+// for (Object entryKey : entries.keySet()) {
|
|
|
+// Object value = entries.get(entryKey);
|
|
|
+// map.put(Integer.valueOf(entryKey.toString()), Integer.valueOf(value.toString()));
|
|
|
+// }
|
|
|
+// return map;
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 写入缓存
|
|
|
+// *
|
|
|
+// * @param key
|
|
|
+// * @param value
|
|
|
+// * @return
|
|
|
+// */
|
|
|
+// public boolean set(final String key, Object value) {
|
|
|
+// boolean result = false;
|
|
|
+// try {
|
|
|
+// ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
|
|
|
+// operations.set(key, value);
|
|
|
+// result = true;
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 写入缓存
|
|
|
+// *
|
|
|
+// * @param key
|
|
|
+// * @param value
|
|
|
+// * @param expireTime 分钟
|
|
|
+// * @return
|
|
|
+// */
|
|
|
+// public boolean set(final String key, Object value, Long expireTime) {
|
|
|
+// boolean result = false;
|
|
|
+// try {
|
|
|
+// ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
|
|
|
+// operations.set(key, value);
|
|
|
+// redisTemplate.expire(key, expireTime, TimeUnit.MINUTES);
|
|
|
+// result = true;
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 设置Key 过期时间
|
|
|
+// *
|
|
|
+// * @param key
|
|
|
+// * @param expireTime 分钟
|
|
|
+// */
|
|
|
+// public void expire(final String key, Long expireTime) {
|
|
|
+// if (redisTemplate.hasKey(key)) {
|
|
|
+// redisTemplate.expire(key, expireTime, TimeUnit.MINUTES);
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public void expireSECONDS(final String key, Long expireTime) {
|
|
|
+// if (redisTemplate.hasKey(key)) {
|
|
|
+// redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public boolean hmset(String key, Map<String, String> value) {
|
|
|
+// boolean result = false;
|
|
|
+// try {
|
|
|
+// redisTemplate.opsForHash().putAll(key, value);
|
|
|
+// result = true;
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Map<String, String> hmget(String key) {
|
|
|
+// Map<String, String> result = null;
|
|
|
+// try {
|
|
|
+// result = redisTemplate.opsForHash().entries(key);
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// public boolean hmSetOne(String key, String code, String value) {
|
|
|
+// boolean result = false;
|
|
|
+// try {
|
|
|
+// redisTemplate.opsForHash().put(key, code, value);
|
|
|
+// result = true;
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Object hmGet(String key, String code) {
|
|
|
+// return redisTemplate.opsForHash().get(key, code);
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Map hashEntries(String key){
|
|
|
+// Map entries = redisTemplate.opsForHash().entries(key);
|
|
|
+// return entries;
|
|
|
+// }
|
|
|
+//
|
|
|
+// public void hmdel(String key, String removeKey) {
|
|
|
+// try {
|
|
|
+// redisTemplate.opsForHash().delete(key, removeKey);
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Long sadd(String key, Object... objects) {
|
|
|
+// return redisTemplate.opsForSet().add(key, objects);
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Set smembers(String key) {
|
|
|
+// return redisTemplate.opsForSet().members(key);
|
|
|
+// }
|
|
|
+//
|
|
|
+// public void srem(String key, Object... value) {
|
|
|
+// redisTemplate.opsForSet().remove(key, value);
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * value类型key对应的值自增1
|
|
|
+// *
|
|
|
+// * @param key
|
|
|
+// */
|
|
|
+// public void incrementForValue(String key) {
|
|
|
+// redisTemplate.opsForValue().increment(key);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// public Boolean hasKey(String key) {
|
|
|
+// return redisTemplate.hasKey(key);
|
|
|
+// }
|
|
|
+//
|
|
|
+// public boolean hset(String key, Object item, Object value, long time) {
|
|
|
+// try {
|
|
|
+// redisTemplate.opsForHash().put(key, item, value);
|
|
|
+// if (time > 0) {
|
|
|
+// expireSECONDS(key, time);
|
|
|
+// }
|
|
|
+// return true;
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public boolean hSetIfAbsent(String key, Object item, Object value, long time) {
|
|
|
+// try {
|
|
|
+// redisTemplate.opsForHash().putIfAbsent(key, item, value);
|
|
|
+// if (time > 0) {
|
|
|
+// expireSECONDS(key, time);
|
|
|
+// }
|
|
|
+// return true;
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// public void setKeyCurrDayValid(String redisKey, Object value) {
|
|
|
+// LocalDateTime tomorrow = LocalDateTime.now().plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
+// long seconds = ChronoUnit.SECONDS.between(LocalDateTime.now(), tomorrow);
|
|
|
+// redisTemplate.opsForValue().set(redisKey, value, seconds);
|
|
|
+// }
|
|
|
+//
|
|
|
+// public Boolean hashHasKey(String redisKey, String key) {
|
|
|
+// return redisTemplate.opsForHash().hasKey(redisKey,key);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// public String incrementWithExpiry(String key, long expireSeconds, String luaScript) {
|
|
|
+// DefaultRedisScript<Long> script = new DefaultRedisScript<>(luaScript, Long.class);
|
|
|
+// return (String) redisTemplate.execute(script, redisTemplate.getStringSerializer(), redisTemplate.getValueSerializer(), Collections.singletonList(key), String.valueOf(expireSeconds));
|
|
|
+// }
|
|
|
+//
|
|
|
+//}
|