| 1234567891011121314151617181920212223242526272829 |
- package com.weblux.launchredis.cacheConfig;
- import com.google.common.cache.Cache;
- import com.google.common.cache.CacheBuilder;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import java.time.Duration;
- import java.time.LocalDateTime;
- @Configuration
- public class CacheConfig {
- @Bean
- public Cache<String, Object> guavaCache() {
- long secondsUntilMidnight = getSecondsUntilNextMidnight();
- return CacheBuilder.newBuilder()
- .expireAfterWrite(java.time.Duration.ofMinutes(secondsUntilMidnight)) // 设置缓存过期时间
- .maximumSize(1000) // 设置缓存最大容量
- .build();
- }
- private static long getSecondsUntilNextMidnight() {
- LocalDateTime now = LocalDateTime.now();
- LocalDateTime midnight = now.toLocalDate().plusDays(1).atStartOfDay().plusHours(0).plusSeconds(0).plusMinutes(1);
- return Duration.between(now, midnight).toMinutes();
- }
- }
|