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: