苍穹外卖【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入门以及店铺营业状态设置的代码实现已经完成。

相关推荐
Sayai12 分钟前
MCP Server 开发实战:Spring AI 把后端日志查询暴露给 AI Agent(7 条设计原则与踩坑实录)
java·人工智能·ai agent·spring ai·mcp
大牧师18 分钟前
Mybatis 框架教程
java·数据库·mybatis·数据持久化·orm
SunnyDays101119 分钟前
Java 合并 PDF 文件:完整合并、指定页面合并与流合并
java·开发语言·合并pdf
金銀銅鐵33 分钟前
[Java] 用GUI展示class文件顶层的 access_flags
后端·python·ai编程
源码宝1 小时前
云HIS系统源码,HIS全套源码,支持监管系统对接与二次开发
java·源码·电子病历·云his系统·程序代码·全套源码
萧瑟余晖1 小时前
Spring MVC拦截器异常处理与跨域详解
java·spring·mvc
泡茶喝茶写代码1 小时前
A股量化数据工程:从 REST 接口到策略信号(第 17 篇):创新高与新低扫描
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
IT_陈寒1 小时前
Vue的数组更新把我坑惨了
前端·人工智能·后端
栗子~~1 小时前
java - logstash-logback-encoder 集成 demo
java·开发语言·logback