mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-10-09 05:36:41 +08:00
system cache
This commit is contained in:
parent
d0086cf68d
commit
7295b90320
@ -51,5 +51,7 @@ public class SwaggerTagConst {
|
|||||||
public static final String MANAGER_CATEGORY = "管理端-分类";
|
public static final String MANAGER_CATEGORY = "管理端-分类";
|
||||||
|
|
||||||
public static final String MANAGER_GOODS = "管理端-商品业务";
|
public static final String MANAGER_GOODS = "管理端-商品业务";
|
||||||
|
|
||||||
|
public static final String MANAGER_SYSTEM_CACHE = "管理端-系统缓存";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
package net.lab1024.smartadmin.service.module.system.systemcache;
|
||||||
|
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
|
||||||
|
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [ ]
|
||||||
|
*
|
||||||
|
* @author yandanyang
|
||||||
|
* @date 2021/10/11 20:07
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = {SwaggerTagConst.Admin.MANAGER_SYSTEM_CACHE})
|
||||||
|
public class SystemCacheController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SystemCacheService systemCacheService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取所有缓存", notes = "@author 罗伊")
|
||||||
|
@GetMapping("/cache/names")
|
||||||
|
public ResponseDTO<List<String>> cacheNames() {
|
||||||
|
return ResponseDTO.ok(systemCacheService.cacheNames());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "移除某个缓存", notes = "@author 罗伊")
|
||||||
|
@GetMapping("/cache/remove/{cacheName}")
|
||||||
|
public ResponseDTO<String> removeCache(@PathVariable String cacheName) {
|
||||||
|
systemCacheService.removeCache(cacheName);
|
||||||
|
return ResponseDTO.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取某个缓存的所有key", notes = "@author 罗伊")
|
||||||
|
@GetMapping("/cache/keys/{cacheName}")
|
||||||
|
public ResponseDTO<List<String>> cacheKeys(@PathVariable String cacheName) {
|
||||||
|
return ResponseDTO.ok(systemCacheService.cacheKey(cacheName));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package net.lab1024.smartadmin.service.module.system.systemcache;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import net.lab1024.smartadmin.service.module.support.reload.core.annoation.SmartReload;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.cache.caffeine.CaffeineCache;
|
||||||
|
import org.springframework.cache.caffeine.CaffeineCacheManager;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [ ]
|
||||||
|
*
|
||||||
|
* @author yandanyang
|
||||||
|
* @date 2021/10/11 20:07
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SystemCacheService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CaffeineCacheManager caffeineCacheManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有缓存名称
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<String> cacheNames(){
|
||||||
|
return Lists.newArrayList(caffeineCacheManager.getCacheNames());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 移除某个key
|
||||||
|
* @param cacheName
|
||||||
|
*/
|
||||||
|
@SmartReload("removeCache")
|
||||||
|
public void removeCache(String cacheName){
|
||||||
|
CaffeineCache cache = (CaffeineCache) caffeineCacheManager.getCache(cacheName);
|
||||||
|
if(cache != null){
|
||||||
|
cache.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 某个缓存下的所有key
|
||||||
|
* @param cacheName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<String> cacheKey(String cacheName){
|
||||||
|
CaffeineCache cache = (CaffeineCache) caffeineCacheManager.getCache(cacheName);
|
||||||
|
if(cache == null){
|
||||||
|
return Lists.newArrayList();
|
||||||
|
}
|
||||||
|
Set<Object> cacheKey = cache.getNativeCache().asMap().keySet();
|
||||||
|
return cacheKey.stream().map(e->e.toString()).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user