From 6017ff0fac73ee771282f8c4711f20ec9ca67bd7 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 07 十一月 2023 08:54:13 +0800 Subject: [PATCH] #Redis Key Type --- src/main/java/com/zy/common/utils/RedisUtil.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zy/common/utils/RedisUtil.java b/src/main/java/com/zy/common/utils/RedisUtil.java index b2df114..33a9694 100644 --- a/src/main/java/com/zy/common/utils/RedisUtil.java +++ b/src/main/java/com/zy/common/utils/RedisUtil.java @@ -1,9 +1,13 @@ package com.zy.common.utils; +import com.baomidou.mybatisplus.toolkit.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -13,14 +17,39 @@ * redisTemplate灏佽 * */ -//@Component +@Component public class RedisUtil { - @Autowired - private RedisTemplate<String, Object> redisTemplate; +// @Autowired +// private RedisTemplate<String, Object> redisTemplate; - public RedisUtil(RedisTemplate<String, Object> redisTemplate) { + @Autowired + private RedisTemplate redisTemplate; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + private static final String LOCK_PREFIX = "lock:"; + private static final long DEFAULT_EXPIRE_TIME = 10; // 榛樿閿佽繃鏈熸椂闂达紝鍗曚綅涓哄垎閽� + + public RedisUtil(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; + } + + /** + * Redis鍔犻攣鐨勬搷浣� + */ + public Boolean tryLock(String key) { + String redisKey = LOCK_PREFIX + key; + return redisTemplate.opsForValue().setIfAbsent(redisKey, "locked", DEFAULT_EXPIRE_TIME, TimeUnit.MINUTES); + } + + /** + * Redis瑙i攣鐨勬搷浣� + */ + public void unlock(String lockKey) { + String redisKey = LOCK_PREFIX + lockKey; + redisTemplate.delete(redisKey); } /** @@ -96,6 +125,21 @@ } /** + * 鑾峰彇鍏ㄩ儴鏁版嵁 + * @return + */ + public HashMap<Object, Object> getRedis() { + Set<String> keys = redisTemplate.keys("*"); + HashMap<Object, Object> map = new HashMap<>(); + for (String key : keys) { + Object value = redisTemplate.opsForValue().get(key); + map.put(key, value); + } + + return map;//杩斿洖鍏ㄩ儴鏁版嵁闆嗗悎 + } + + /** * 鏅�氱紦瀛樻斁鍏� * * @param key 閿� -- Gitblit v1.9.1