From 72a3a973ce3df9c0be442f53a895bbd05c5d1543 Mon Sep 17 00:00:00 2001 From: Naccl Date: Fri, 26 Mar 2021 23:11:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E6=94=B9=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../top/naccl/dwz/service/impl/UrlServiceImpl.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java b/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java index 2523cde..bb48acc 100644 --- a/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java +++ b/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java @@ -26,7 +26,7 @@ public class UrlServiceImpl implements UrlService { StringRedisTemplate redisTemplate; //自定义长链接防重复字符串 private static final String DUPLICATE = "*"; - //最近使用的短链接过期时间(分钟) + //最近使用的短链接缓存过期时间(分钟) private static final long TIMEOUT = 10; //创建布隆过滤器 private static final BitMapBloomFilter FILTER = BloomFilterUtil.createBitMap(10); @@ -36,11 +36,17 @@ public class UrlServiceImpl implements UrlService { //查找Redis中是否有缓存 String longURL = redisTemplate.opsForValue().get(shortURL); if (longURL != null) { - //有缓存 + //有缓存,延迟缓存时间 + redisTemplate.expire(shortURL, TIMEOUT, TimeUnit.MINUTES); return longURL; } //Redis没有缓存,从数据库查找 - return urlMapper.getLongUrlByShortUrl(shortURL); + longURL = urlMapper.getLongUrlByShortUrl(shortURL); + if (longURL != null) { + //数据库有此短链接,添加缓存 + redisTemplate.opsForValue().set(shortURL, longURL, TIMEOUT, TimeUnit.MINUTES); + } + return longURL; } @Override