首页 > 解决方案 > 如何将咖啡因缓存设置为不过期

问题描述

我有一个简单的 Spring Boot 应用程序,我正在使用 Caffeine 进行缓存。我正在使用 Spring Boot 属性对其进行配置。我如何发送它以使其不会过期?

标签: javaspring-bootcaffeine

解决方案


您是否像他们在这里所做的那样将其设置为足够高的值。 https://github.com/ben-manes/caffeine/blob/e8ff6d3261e7f5666d2b486352cc04b2874d70ed/caffeine/src/main/java/com/github/benmanes/caffeine/cache/Async.java

您可以像这样实现自己的到期。

Caffeine
            .newBuilder()
            .expireAfter(new Expiry<String, String>() {
                @Override
                public long expireAfterCreate(@Nonnull String key, @Nonnull String value,
                                              long currentTime) {
                    //return Duration.ofDays(1).toNanos();
                    return   Long.MAX_VALUE;
                }

                @Override
                public long expireAfterUpdate(@Nonnull String key, @Nonnull String value, long currentTime,
                                              long currentDuration) {
                    return currentDuration;
                }

                @Override
                public long expireAfterRead(@Nonnull String key, @Nonnull String value, long currentTime,
                                            long currentDuration) {
                    return currentDuration;
                }
            }).build()

推荐阅读