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

相关推荐
码事漫谈3 小时前
告别数据孤岛与AI“水土不服”:金仓多模融合时序库如何让数据真正服务于业务
后端
IT_陈寒3 小时前
Redis的持久化配置把我坑惨了:你以为数据安全了?
前端·人工智能·后端
星栈3 小时前
Node 接口该写同步还是异步?
后端·node.js
红烧大青虫3 小时前
HarmonyOS应用开发实战:小事记 - UIAbility 的冷启动/热启动/后台启动三种场景与 launchParam 解析
后端·华为·harmonyos·鸿蒙系统
码事漫谈3 小时前
AI Token 缓存:命中省 10 倍,不命中白扔钱
后端
CRMEB系统商城3 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
65岁退休Coder3 小时前
LangChain v1.3.4 笔记 - 04 Agent 中间件
后端
keyipatience5 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
神奇小汤圆5 小时前
一个接口多个实现,Spring 怎么"适配多场景"?
后端
花开彼岸天~5 小时前
鸿蒙原生开发手记:徒步迹 - 自定义组件开发规范
后端·华为·harmonyos·鸿蒙系统