diff --git a/liang-springcloud-alibaba-goods-service/pom.xml b/liang-springcloud-alibaba-goods-service/pom.xml
index 6a45761..f61586b 100644
--- a/liang-springcloud-alibaba-goods-service/pom.xml
+++ b/liang-springcloud-alibaba-goods-service/pom.xml
@@ -48,5 +48,22 @@
mysql-connector-java
8.0.33
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+ org.apache.commons
+ commons-pool2
+ 2.11.1
+
diff --git a/liang-springcloud-alibaba-goods-service/src/main/java/com/liang/sca/goods/config/RedisConfig.java b/liang-springcloud-alibaba-goods-service/src/main/java/com/liang/sca/goods/config/RedisConfig.java
new file mode 100644
index 0000000..7da9dca
--- /dev/null
+++ b/liang-springcloud-alibaba-goods-service/src/main/java/com/liang/sca/goods/config/RedisConfig.java
@@ -0,0 +1,24 @@
+package com.liang.sca.goods.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+@Configuration
+public class RedisConfig {
+
+ @Bean
+ public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
+ RedisTemplate template = new RedisTemplate<>();
+ template.setConnectionFactory(redisConnectionFactory);
+ template.setKeySerializer(new StringRedisSerializer());
+ template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
+ template.setHashKeySerializer(new StringRedisSerializer());
+ template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
+ template.afterPropertiesSet();
+ return template;
+ }
+}
diff --git a/liang-springcloud-alibaba-goods-service/src/main/java/com/liang/sca/goods/controller/SecKillController.java b/liang-springcloud-alibaba-goods-service/src/main/java/com/liang/sca/goods/controller/SecKillController.java
new file mode 100644
index 0000000..2bbf106
--- /dev/null
+++ b/liang-springcloud-alibaba-goods-service/src/main/java/com/liang/sca/goods/controller/SecKillController.java
@@ -0,0 +1,39 @@
+package com.liang.sca.goods.controller;
+
+import com.liang.sca.goods.mapper.GoodsInfoMapper;
+import com.liang.sca.goods.model.GoodsInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/seckill")
+public class SecKillController {
+
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ @Autowired
+ private GoodsInfoMapper goodsInfoMapper;
+
+ /**
+ * 创建秒杀活动
+ * @param id 商品信息表的主键 ID
+ * @return 操作结果信息
+ */
+ @RequestMapping("/create/{id}")
+ public String createSecKillActivity(@PathVariable int id) {
+ // 根据 id 查询 tb_goods_info 表
+ GoodsInfo goodsInfo = goodsInfoMapper.selectById(id);
+ if (goodsInfo == null) {
+ return "商品信息不存在";
+ }
+ // 以 goodsId 为 key,将库存放入 redis 中
+ String key = "seckill:goods:" + goodsInfo.getGoodsId();
+ redisTemplate.opsForValue().set(key, goodsInfo.getGoodsStore());
+ return "秒杀活动创建成功";
+ }
+}
diff --git a/liang-springcloud-alibaba-goods-service/src/main/resources/application.yml b/liang-springcloud-alibaba-goods-service/src/main/resources/application.yml
index 85022df..ee65e23 100644
--- a/liang-springcloud-alibaba-goods-service/src/main/resources/application.yml
+++ b/liang-springcloud-alibaba-goods-service/src/main/resources/application.yml
@@ -14,4 +14,15 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
serialization:
- FAIL_ON_EMPTY_BEANS: false
\ No newline at end of file
+ FAIL_ON_EMPTY_BEANS: false
+ redis:
+ host: 154.12.80.119
+ port: 6379
+ database: 0
+ password: 123456
+ lettuce:
+ pool:
+ max-active: 8
+ max-wait: -1ms
+ max-idle: 8
+ min-idle: 0
\ No newline at end of file