diff --git a/pom.xml b/pom.xml
index 7049195..ee65be1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,6 +58,20 @@
test
+
+
+ org.springframework.boot
+ spring-boot-starter-cache
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ com.github.ben-manes.caffeine
+ caffeine
+
+
org.springframework.boot
spring-boot-devtools
diff --git a/src/main/java/io/github/xxyopen/novel/core/common/constant/CommonConsts.java b/src/main/java/io/github/xxyopen/novel/core/common/constant/CommonConsts.java
new file mode 100644
index 0000000..1909516
--- /dev/null
+++ b/src/main/java/io/github/xxyopen/novel/core/common/constant/CommonConsts.java
@@ -0,0 +1,16 @@
+package io.github.xxyopen.novel.core.common.constant;
+
+/**
+ * 通用常量
+ *
+ * @author xiongxiaoyang
+ * @date 2022/5/12
+ */
+public class CommonConsts {
+
+ private CommonConsts(){}
+
+ public static final String YES = "yes";
+
+ public static final String NO = "no";
+}
diff --git a/src/main/java/io/github/xxyopen/novel/core/config/CacheConfig.java b/src/main/java/io/github/xxyopen/novel/core/config/CacheConfig.java
new file mode 100644
index 0000000..8a13fbe
--- /dev/null
+++ b/src/main/java/io/github/xxyopen/novel/core/config/CacheConfig.java
@@ -0,0 +1,83 @@
+package io.github.xxyopen.novel.core.config;
+
+import com.github.benmanes.caffeine.cache.Caffeine;
+import io.github.xxyopen.novel.core.constant.CacheConsts;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.caffeine.CaffeineCache;
+import org.springframework.cache.support.SimpleCacheManager;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.cache.RedisCacheWriter;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 缓存配置类
+ *
+ * @author xiongxiaoyang
+ * @date 2022/5/12
+ */
+@Configuration
+public class CacheConfig {
+
+ /**
+ * Caffeine 缓存管理器
+ */
+ @Bean
+ @Primary
+ public CacheManager caffeineCacheManager() {
+ SimpleCacheManager cacheManager = new SimpleCacheManager();
+
+ List caches = new ArrayList<>(CacheConsts.CacheEnum.values().length);
+ for (CacheConsts.CacheEnum c : CacheConsts.CacheEnum.values()) {
+ if (c.isLocal()) {
+ Caffeine