| | |
| | | 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; |
| | |
| | | @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解锁的操作 |
| | | */ |
| | | public void unlock(String lockKey) { |
| | | String redisKey = LOCK_PREFIX + lockKey; |
| | | redisTemplate.delete(redisKey); |
| | | } |
| | | |
| | | /** |
| | | * 指定缓存失效时间 |
| | | * |
| | | * @param key 键 |