ruoyi-admin/src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-admin/src/main/resources/application.yml
@@ -262,6 +262,21 @@ circuitbreaker: enabled: true --- # redisson ç¼åé ç½® redisson: cacheGroup: # ç¨ä¾: @Cacheable(cacheNames="groupId", key="#XXX") æ¹å¯ä½¿ç¨ç¼åç»é ç½® - groupId: redissonCacheMap # ç»è¿ææ¶é´(èæ¬çæ§) ttl: 60000 # ç»æå¤§ç©ºé²æ¶é´(èæ¬çæ§) maxIdleTime: 60000 # ç»æå¤§é¿åº¦ maxSize: 0 - groupId: testCache ttl: 1000 maxIdleTime: 500 --- # åå¸å¼é lock4j å ¨å±é ç½® lock4j: # è·ååå¸å¼éè¶ æ¶æ¶é´ï¼é»è®¤ä¸º 3000 æ¯«ç§ ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.AjaxResult; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * spring-cache æ¼ç¤ºæ¡ä¾ * * @author Lion Li */ // ç±»çº§å« ç¼åç»ä¸é ç½® //@CacheConfig(cacheNames = "redissonCacheMap") @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/demo/cache") public class RedisCacheController { /** * æµè¯ @Cacheable * * 表示è¿ä¸ªæ¹æ³æäºç¼åçåè½,æ¹æ³çè¿åå¼ä¼è¢«ç¼å䏿¥ * ä¸ä¸æ¬¡è°ç¨è¯¥æ¹æ³å,ä¼å»æ£æ¥æ¯å¦ç¼åä¸å·²ç»æå¼ * 妿æå°±ç´æ¥è¿å,ä¸è°ç¨æ¹æ³ * å¦ææ²¡æ,å°±è°ç¨æ¹æ³,ç¶åæç»æç¼åèµ·æ¥ * è¿ä¸ªæ³¨è§£ãä¸è¬ç¨å¨æ¥è¯¢æ¹æ³ä¸ã * * cacheNames 为é ç½®æä»¶å groupId */ @Cacheable(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test1") public AjaxResult<String> test1(String key, String value){ return AjaxResult.success("æä½æå", value); } /** * æµè¯ @CachePut * * å äº@CachePutæ³¨è§£çæ¹æ³,ä¼ææ¹æ³çè¿åå¼putå°ç¼åéé¢ç¼åèµ·æ¥,ä¾å ¶å®å°æ¹ä½¿ç¨ * å®ãé常ç¨å¨æ°å¢æ¹æ³ä¸ã * * cacheNames 为 é ç½®æä»¶å groupId */ @CachePut(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test2") public AjaxResult<String> test2(String key, String value){ return AjaxResult.success("æä½æå", value); } /** * æµè¯ @CacheEvict * * 使ç¨äºCacheEvictæ³¨è§£çæ¹æ³,伿¸ 空æå®ç¼å * ãä¸è¬ç¨å¨æ´æ°æè å é¤çæ¹æ³ä¸ã * * cacheNames 为 é ç½®æä»¶å groupId */ @CacheEvict(cacheNames = "redissonCacheMap", key = "#key", condition = "#key != null") @GetMapping("/test3") public AjaxResult<String> test3(String key, String value){ return AjaxResult.success("æä½æå", value); } } ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
@@ -19,6 +19,7 @@ import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; /** @@ -78,8 +79,13 @@ */ @Bean public CacheManager cacheManager(RedissonClient redissonClient) { List<RedissonProperties.CacheGroup> cacheGroup = redissonProperties.getCacheGroup(); Map<String, CacheConfig> config = new HashMap<>(); config.put("redissonCacheMap", new CacheConfig(30*60*1000, 10*60*1000)); for (RedissonProperties.CacheGroup group : cacheGroup) { CacheConfig cacheConfig = new CacheConfig(group.getTtl(), group.getMaxIdleTime()); cacheConfig.setMaxSize(group.getMaxSize()); config.put(group.getGroupId(), cacheConfig); } return new RedissonSpringCacheManager(redissonClient, config, JsonJacksonCodec.INSTANCE); } ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
@@ -2,10 +2,11 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.redisson.client.codec.Codec; import org.redisson.config.TransportMode; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; /** * Redisson é ç½®å±æ§ @@ -36,6 +37,11 @@ * åæºæå¡é ç½® */ private SingleServerConfig singleServerConfig; /** * ç¼åç» */ private List<CacheGroup> cacheGroup; @Data @NoArgsConstructor @@ -98,4 +104,30 @@ } @Data @NoArgsConstructor public static class CacheGroup { /** * ç»id */ private String groupId; /** * ç»è¿ææ¶é´ */ private long ttl; /** * ç»æå¤§ç©ºé²æ¶é´ */ private long maxIdleTime; /** * ç»æå¤§é¿åº¦ */ private int maxSize; } }