苍穹外卖【day5|Redis与店铺营业状态设置】

🌈个人主页 :一条泥憨鱼 (欢迎各位大佬莅临)

🎬精选专栏:数据结构与算法Java,AI与Agent

在这一章节我们会用到redis,相关安装包在资料里都有,直接解压安装即可

在我们的苍穹外卖项目中使用redis,有以下几步操作

导入Spring Data Redis的maven坐标

在pom.xml文件导入相关依赖

配置redis数据源

注意看对应的文件

这里的database是指操作哪个数据库,因为redis最初默认给了我们0-15这16个数据库

这里我们就选10号吧

编写配置类,创建RedisTemplate对象

通过Redistemplate对象操作Redis

这里容易踩的坑是,在操作的时候应该先启动redis,并保持cmd终端窗口在运行状态,也就是不能关掉,不然后面就会一直爆红

先做一个简单说明,一会就能使用这五个对象操作不同类型的数据

操作字符串类型的数据:

接下来去到我们的10号数据库中

这里实际上不是乱码,而是由于我们是通过Java程序操作的redis,变成这个样子是因为其经过了序列化,但实际上key是能正常展示的,因为我们配置了序列化器StringRedisSerializer。类似乱码的东西会让我们看起来不舒服,但实际上并不影响使用

操作哈希类型的数据

操作列表类型的数据

这里我连续运行了三次,然后惊奇地发现,每运行一次,都会重复地添加数据进去,也就导致最后存储了12个数据

操作集合类型的数据

运行结果如下

redis控制台回显结果如下

操作有序集合类型的数据

运行结果展示

redis控制台回显结果如下

通用命令操作

这里就不需要像之前一样创建xxoperations对象了,我们直接用redisTemplate对象进行操作即可

一开始并没有返回任何东西,去一开始的redis配置类加上@Bean这个注解就可以了

附:需要新添加的注解展示图

店铺营业状态设置

需求分析和设计

产品原型

接口设计

用户端查询与管理端查询接口十分相似,只需把请求路径中的admin改为user就可以了

因为营业状态十分简单,我们也没有必要单独用一张mysql的表去存储,所以这里用redis

请求路径与之前不一样,新建controller层代码实现

当前controller/admin包下面的类都是管理端提交过来的请求,我们还需要接受用户端发过来的请求,因此需要创建新的包

新的包:

由于用户端功能与管理端一样,所以直接把/admin包下面的ShopController拷贝到user下面就可以了。但要注意把请求路径改为user,并且把用户端的修改营业状态给去除掉

但由于此时两个包重名,在运行的时候会引起Spring容器报错,所以在启动之前最好先编译一下项目

编译提示冲突,我们就来给两个包的注解改一下用以区分

弄完这些突然发现登不进去了,捣鼓好久才发现其实是因为电脑被我重启过,所以要重新启动nginx和redis...

由于现在有用户端接口和管理端接口,为了便于区分,我们在配置类方法中设置两个方法,将它们分开扫描,便于我们在接口文档中查看

接口文档就会变成这样,便于我们查看和操作用户端和管理端的接口

至此,redis入门以及店铺营业状态设置的代码实现已经完成。

相关推荐
ServBay25 分钟前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
妙码生花34 分钟前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
用户6757049885021 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go
Flittly1 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
用户6757049885021 小时前
Go 进阶必修:90% 的人都没用对的“表驱动法”
后端·go
小兔崽子去哪了1 小时前
Java 生成二维码解决方案
java·后端
苍何1 小时前
懂事的 Agent 已经开始自己看屏幕干活了,效率起飞!
后端
掘金码甲哥2 小时前
1分钟买不了吃亏系列: nginx动态域名解析
后端
神奇小汤圆2 小时前
2026大厂Java岗面试记录:八股+场景+项目+AI,一文讲透快速上岸路径(含答案)
后端
神奇小汤圆2 小时前
我说MySQL每张表最好不超过2000万条数据,面试官让我回去等通知?
后端