diff --git a/common/mall-spring-boot-starter-redis/pom.xml b/common/mall-spring-boot-starter-redis/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..479f37306ef968eee02b09f9defc79d0d464ef87
--- /dev/null
+++ b/common/mall-spring-boot-starter-redis/pom.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>common</artifactId>
+        <groupId>cn.iocoder.mall</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mall-spring-boot-starter-redis</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.redisson</groupId>
+            <artifactId>redisson-spring-boot-starter</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/common/mall-spring-boot-starter-redis/src/main/java/cn/iocoder/mall/redis/core/RedisKeyDefine.java b/common/mall-spring-boot-starter-redis/src/main/java/cn/iocoder/mall/redis/core/RedisKeyDefine.java
new file mode 100644
index 0000000000000000000000000000000000000000..0ac7ece2d83a2296c96fd2e44f45af8a14d17163
--- /dev/null
+++ b/common/mall-spring-boot-starter-redis/src/main/java/cn/iocoder/mall/redis/core/RedisKeyDefine.java
@@ -0,0 +1,71 @@
+package cn.iocoder.mall.redis.core;
+
+import java.time.Duration;
+
+/**
+ * Redis Key 定义类
+ */
+public class RedisKeyDefine {
+
+    public enum KeyTypeEnum {
+
+        STRING,
+        LIST,
+        HASH,
+        SET,
+        ZSET,
+        STREAM,
+        PUBSUB;
+
+    }
+
+    /**
+     * 过期时间 - 永不过期
+     */
+    public static final Duration TIMEOUT_FOREVER = null;
+
+    /**
+     * Key 模板
+     */
+    private final String keyTemplate;
+    /**
+     * Key 类型的枚举
+     */
+    private final KeyTypeEnum keyType;
+    /**
+     * Value 类型
+     *
+     * 如果是使用分布式锁,设置为 {@link java.util.concurrent.locks.Lock} 类型
+     */
+    private final Class valueType;
+    /**
+     * 过期时间
+     *
+     * 为空时,表示永不过期 {@link #TIMEOUT_FOREVER}
+     */
+    private final Duration timeout;
+
+    public RedisKeyDefine(String keyTemplate, KeyTypeEnum keyType, Class valueType, Duration timeout) {
+        this.keyTemplate = keyTemplate;
+        this.keyType = keyType;
+        this.valueType = valueType;
+        this.timeout = timeout;
+    }
+
+    public String getKeyTemplate() {
+        return keyTemplate;
+    }
+
+    public KeyTypeEnum getKeyType() {
+        return keyType;
+    }
+
+    public Class getValueType() {
+        return valueType;
+    }
+
+    public Duration getTimeout() {
+        return timeout;
+    }
+
+}
diff --git a/common/pom.xml b/common/pom.xml
index 109af83ba670a74b81807ffcd3b03daa15ac7fa2..3596975dc265398bdc62f9de1936d193d6e5a35b 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -25,6 +25,7 @@
         <module>mall-spring-boot-starter-system-error-code</module>
         <module>mall-spring-boot-starter-rocketmq</module>
         <module>mall-spring-boot-starter-xxl-job</module>
+        <module>mall-spring-boot-starter-redis</module>
     </modules>
 
     <dependencyManagement>
diff --git a/mall-dependencies/pom.xml b/mall-dependencies/pom.xml
index 069608c1914bb2639307edfe12bc03418932d0fc..7e29514c74804fcc90f0321e5e41a3f8876e78fa 100644
--- a/mall-dependencies/pom.xml
+++ b/mall-dependencies/pom.xml
@@ -40,6 +40,7 @@
         <mybatis.version>3.5.4</mybatis.version>
         <mybatis-plus.version>3.3.2</mybatis-plus.version>
         <spring-boot-starter-data-jest.version>3.2.5.RELEASE</spring-boot-starter-data-jest.version>
+        <redisson.version>3.13.6</redisson.version>
         <!-- RPC 相关 -->
         <dubbo.version>2.7.7</dubbo.version>
         <!-- MQ 相关 -->
@@ -145,11 +146,22 @@
                 <version>${spring-boot-starter-data-jest.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>org.redisson</groupId>
+                <artifactId>redisson-spring-boot-starter</artifactId>
+                <version>${redisson.version}</version>
+            </dependency>
+
             <dependency>
                 <groupId>cn.iocoder.mall</groupId>
                 <artifactId>mall-spring-boot-starter-mybatis</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
+            <dependency>
+                <groupId>cn.iocoder.mall</groupId>
+                <artifactId>mall-spring-boot-starter-redis</artifactId>
+                <version>1.0-SNAPSHOT</version>
+            </dependency>
 
             <!-- Web 相关 -->
             <dependency>
diff --git a/system-service-project/system-service-app/pom.xml b/system-service-project/system-service-app/pom.xml
index b5ad252e658c5955f08bf688f7eaf97f2e2e6cef..eb42f234e8b6e80d71f0bfabe7e377929ae03c68 100644
--- a/system-service-project/system-service-app/pom.xml
+++ b/system-service-project/system-service-app/pom.xml
@@ -56,6 +56,11 @@
             <artifactId>mall-spring-boot-starter-mybatis</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>cn.iocoder.mall</groupId>
+            <artifactId>mall-spring-boot-starter-redis</artifactId>
+        </dependency>
+
         <!-- 监控相关 -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/system-service-project/system-service-app/src/main/resources/application-dev.yaml b/system-service-project/system-service-app/src/main/resources/application-dev.yaml
index 2214910e4c6ff8070471a4e0b1ddeb58fc886d9e..3728001871864b82e2a5fff55412ca5dfaac91aa 100644
--- a/system-service-project/system-service-app/src/main/resources/application-dev.yaml
+++ b/system-service-project/system-service-app/src/main/resources/application-dev.yaml
@@ -1,10 +1,11 @@
 spring:
-  # 数据源配置项
+  # MySQL 配置项
   datasource:
     url: jdbc:mysql://400-infra.server.iocoder.cn:3306/mall_system?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
     driver-class-name: com.mysql.jdbc.Driver
     username: root
     password: 3WLiVUBEwTbvAfsh
+
   # Spring Cloud 配置项
   cloud:
     nacos:
diff --git a/system-service-project/system-service-app/src/main/resources/application-local.yaml b/system-service-project/system-service-app/src/main/resources/application-local.yaml
index b0bbbf8f9b133f94c7c9689d55b9a61c3a585634..adbbf576e2948c0c7e76a87b8dbdf50526b7f192 100644
--- a/system-service-project/system-service-app/src/main/resources/application-local.yaml
+++ b/system-service-project/system-service-app/src/main/resources/application-local.yaml
@@ -1,10 +1,17 @@
 spring:
-  # 数据源配置项
+  # MySQL 配置项
   datasource:
     url: jdbc:mysql://400-infra.server.iocoder.cn:3306/mall_system?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
     driver-class-name: com.mysql.jdbc.Driver
     username: root
     password: 3WLiVUBEwTbvAfsh
+
+  # Redis 配置
+  redis:
+    host: 127.0.0.1
+    port: 6379
+    database: 0
+
   # Spring Cloud 配置项
   cloud:
     nacos: