Day05

25 阅读2分钟

Day05 学习主题与产出

今天你要掌握两件事:

  1. Redis 基础:数据类型 + 常用命令 + 在 Java/Spring Boot 里怎么用(核心是 RedisTemplate
  2. 用 Redis 落地一个真实功能:店铺营业状态设置/查询(管理端设置、管理端查、用户端查)

最终产出:

  • 你能把“营业/打烊”状态用 Redis 的一个字符串 key 存起来(约定:1 营业、0 打烊)
  • 你能写出 3 个接口并在 doc.html 测通,再做前后端联调

Part A:Redis 你需要记住的“最小知识集”

1) Redis 是啥 & 为什么用它

Redis 是内存型 key-value 数据库,读写性能高,常用于热点数据等场景。

2) 五种常用数据类型(只要先会这五个)

string / hash / list / set / zset

3) 常用命令(先会“够用”的)

  • string:SET/GET/SETEX/SETNX
  • hash:HSET/HGET/HDEL/HKEYS/HVALS
  • list:LPUSH/LRANGE/RPOP/LLEN/BRPOP
  • set:SADD/SMEMBERS/SCARD/SINTER/SUNION/SREM
  • zset:ZADD/ZRANGE/ZINCRBY/ZREM

学习小技巧:
命令不要“背列表”,用“我在项目里要存什么”来反推。比如营业状态就是一个单值 -> string 就够了


Part B:在 Java 中操作 Redis(关键点)

项目里用 Spring Data Redis,核心类是 RedisTemplate。你需要把它“跑起来”,然后知道怎么 opsForValue()

1) 配置:application-dev.yml + application.yml

讲义给了配置方式(host/port/password/database)
重点:database 是 Redis 的库编号(默认 0-15)

2) 为什么要写 RedisConfiguration

Spring Boot 虽然能自动装配 RedisTemplate,但默认 key 序列化会让你在 Redis 里看到“奇怪格式”,所以把 key 序列化器改成 StringRedisSerializer

3) 会用 RedisTemplate 的“五类操作入口”

opsForValue / opsForHash / opsForList / opsForSet / opsForZSet
今天的店铺状态:用 opsForValue() 就行。


Part C:实战功能——店铺营业状态设置(今天主线)

1) 需求与接口

业务规则:营业中可下单;打烊中不可下单
接口一共 3 个:设置状态、管理端查询、用户端查询
存储方式:Redis string,约定 1/0

2) 代码落点

  • sky-server 模块做 Redis 环境与接口开发

  • 管理端 Controller:com.sky.controller.admin.ShopController

    • PUT /admin/shop/{status}:设置营业状态,key 固定 "SHOP_STATUS"
  • 用户端 Controller:com.sky.controller.user.ShopController

    • GET /user/shop/status:查询营业状态(同一个 key)

这块你可以把它当成一个超典型的“把状态放 Redis”的模板:常量 KEY + set/get + 日志 + Result 包装

3) 测试路径

  1. doc.html 测接口(注意 token 过期要重新用 admin 登录拿)
  2. 再看 Redis 中是否写入成功(确认 value 变了)
  3. 最后走前后端联调:启动 nginx,后台页面切换营业状态看效果