【苍穹外卖 | 项目日记】第四天
前言:
今天状态还可以,既有自己实战独立写接口,又听了课,学习了新的知识
目录
前言:
今日完结任务:
今日收获:
实现店铺状态接口
杂项知识点:
总结:
今日完结任务:
- 实现删除套餐接口
- 实现修改套餐接口
- 实现起售停售接口
- 实现查询店铺状态接口
- 实现修改店铺接口
今日收获:
前几个关于店铺的接口其实没有什么收获,因为还是简单的CURD操作,因此我在这里不多做介绍,但是在实现查询店铺状态接口的时候,我学习到了一个很重要的知识点: Redis
实现店铺状态接口
店铺无非就两个状态:开业中和已打烊。按照我们之前的思路:首先在MySQL中建表,然后我们的接口实现对这个表进行读取或更改。但是这样却存在两个问题:
- 如果建表,这个表就一行一列,只有一个 status 状态,而我们是否有必要为了这样一个简单的数据去单独建立一张表呢?
- 店铺的营业状态属于高请求类型,只要用户点进这家店铺,就要发送这样的请求查询店铺状态,而MySQL是把表存储在磁盘当中的,也就是说在读写操作上并不占优,如果在高并发的情况下,是否会影响体验呢?
为了解决这个问题,我们在这里使用的是键值类型的数据库Redis。
关于Redis我也写了一篇简单介绍的文章:
【从零开始学习Redis | 第一篇】快速了解Redis_我是一盘牛肉的博客-CSDN博客
并且Redis会把数据存放在内存中,拥有较高的读写速度,天生就适合处理高并发请求数据。
杂项知识点:
在java应用Redis的时候,配置类中的连接工厂和Key序列化器是什么?
-
连接工厂(RedisConnectionFactory):连接工厂负责创建和管理与 Redis 数据库的连接。通过配置连接工厂,我们可以指定连接到 Redis 服务器的方式(比如单机、主从、哨兵、集群等),以及设置连接池的一些参数(如最大连接数、最大空闲连接数等)。连接工厂是 RedisTemplate 连接 Redis 的入口,它提供了与 Redis 进行交互的底层实现。
-
Key 序列化器(Key Serializer):Redis 是一个键值对数据库,我们在与 Redis 进行交互时需要传递 Key 和 Value。Key 序列化器负责将 Java 对象的 Key 序列化为 Redis 可以接受的字节数组格式,并在从 Redis 中获取数据时进行反序列化。在 RedisTemplate 中,如果我们不设置 Key 序列化器,它会使用默认的 JdkSerializationRedisSerializer,这种序列化器使用 Java 原生序列化机制,生成的序列化数据较大且可读性差,不利于后期维护和调试。常用的 Key 序列化器有 StringRedisSerializer(将 Key 序列化为字符串)、GenericToStringSerializer(将 Key 序列化为字符串,适用于大多数场景)等。
通过配置连接工厂和 Key 序列化器,我们可以实现以下目的:
-
确保正确连接到 Redis 数据库,使用合适的连接方式和参数进行连接管理,提高连接的可靠性和性能。
-
在与 Redis 进行数据交互时,将 Java 对象的 Key 序列化为 Redis 可以接受的格式,以及从 Redis 中获取的数据进行反序列化,保证数据的正确传输和使用。
因此,配置连接工厂和 Key 序列化器可以帮助我们更方便地操作 Redis 数据库,并确保数据的一致性和可靠性。
总结:
今天还是收获挺多的,唯一的遗憾就是白天的时候有点摆,没怎么学,一直到下午四点才开始学,要注意这个问题
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!
相关文章:

【苍穹外卖 | 项目日记】第四天
前言: 今天状态还可以,既有自己实战独立写接口,又听了课,学习了新的知识 目录 前言: 今日完结任务: 今日收获: 实现店铺状态接口 杂项知识点: 总结: 今日完结任务…...

零代码编程:用ChatGPT批量采集bookroo网页上的英文书目列表
bookroo网页上有很多不错的英文图书书目。比如这个关于儿童花样滑冰的书单: https://bookroo.com/explore/books/topics/ice-skating 怎么批量下载下来呢? 这个网页是动态网页,要爬取下来比较麻烦,可以先查看源代码,…...

7.定时器
定时器资源 CC2530有四个定时器TIM1~TIM4和休眠定时器 TIM1 定时器1 是一个独立的16 位定时器,支持典型的定时/计数功能,比如输入捕获,输出比较和PWM 功能。定时器有五个独立的捕获/比较通道。每个通道定时器使用一个I/O 引脚。定时器用于…...

计算机网络 | 网络层
计算机网络 | 网络层 计算机网络 | 网络层功能概述SDN(Software-Defined Networking)路由算法与路由协议IPv4IPv4 分组IPv4 分组的格式IPv4 数据报分片 参考视频:王道计算机考研 计算机网络 参考书:《2022年计算机网络考研复习指…...

21GA-ELM,遗传算法优化ELM预测,并和优化前后以及真实数值进行对比,确定结果,基于MATLAB平台,程序已经调通,可以直接运行,需要直接拍下。
GA-ELM,遗传算法优化ELM预测,并和优化前后以及真实数值进行对比,确定结果,基于MATLAB平台,程序已经调通,可以直接运行,需要直接拍下。 21matlab时间序列预测极限学习遗传优化算 (xiaohongshu.co…...
287_C++_TaskQueue管理任务队列和定时器(头文件.h)
#ifndef TASKQUEUE_H #define TASKQUEUE_H#include <sys/types.h> #include <stdlib.h> #include <pthread.h>...
Hadoop+Zookeeper+HA错题总结(一)
题目3: 下列哪项通常是hadoop集群运行时的最主要瓶颈?() [单选题] A、CPU B、网络 C、磁盘 IO D、内存 【参考答案】: C 【您的答案】: D 这道题的答案取决于集群的性能,一般来说运行时的主要瓶颈是网络。但是如果集群的磁盘IO性能较差&am…...

React高级特性之context
例1: createContext // 跨组件通信Context引入createContext import React, { createContext } from react// App传数据给组件C App -- A -- C// 1. 创建Context对象 const { Provider, Consumer } createContext()function SonA () {return (<div>我是…...

【OS】操作系统课程笔记 第五章 并发性——互斥、同步和通信
并发性:并发执行的各个进程之间,既有独立性,又有制约性; 独立性:各进程可独立地向前推进; 制约性:一个进程会受到其他进程的影响,这种影响关系可能有3种形式: 互斥&am…...
RabbitMQ概述原理
RabbitMQ是一种消息队列中间件,其主要作用是在应用程序之间传输数据。它基于AMQP(高级消息队列协议)实现,可以用于不同语言和不同操作系统之间的通信。 RabbitMQ的工作原理是生产者将消息发送到队列中,消费者从队列中接…...

8.Covector Transformation Rules
上一节已知,任意的协向量都可以写成对偶基向量的线性组合,以及如何通过计算基向量穿过的协向量线来获得协向量分量,且看到 协向量分量 以 与向量分量 相反的方式进行变换。 现要在数学上确认协向量变换规则是什么。 第一件事:…...
RustDay04------Exercise[21-30]
21.使用()对变量进行解包 // primitive_types5.rs // Destructure the cat tuple so that the println will work. // Execute rustlings hint primitive_types5 or use the hint watch subcommand for a hint.fn main() {let cat ("Furry McFurson", 3.5);// 这里…...

OpenAI科学家谈GPT-4的潜力与挑战
OpenAI Research Scientist Hyung Won Chung 在首尔国立大学发表的一场演讲。 模型足够大,某些能力才会显现,GPT-4 即将超越拐点并在其能力上实现显着跳跃。GPT-3 和 GPT-4 之间的能力仍然存在显着差距,并且尝试弥合与当前模型的差距可能是无…...

Java电子病历编辑器项目源码 采用B/S(Browser/Server)架构
电子病历(EMR,Electronic Medical Record)是用电子技术保存、管理、传输和重现的数字化的病人的医疗记录,取代手写纸张病历,将医务人员在医疗活动过程中,使用医疗机构管理系统生成的文字、符号、图表、图形、数据、影像等数字化内…...
使用 AWS DataSync 进行跨区域 AWS EFS 数据传输
如何跨区域EFS到EFS数据传输 部署 DataSync 代理 在可以访问源 EFS 和目标 EFS 的源区域中部署代理。转至AWS 代理 AMI 列表并按 AWS 区域选择您的 AMI。对于 us-west-1,单击 us-west-1 前面的启动实例。 启动实例 2. 选择您的实例类型。AWS 建议使用以下实例类型之…...
设计模式~解释器模式(Interpreter)-19
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 【俺有一个《泡MM真经》&#x…...
对象混入的实现方式
对象混入(Object mixins)是一种在面向对象编程中用于组合和重用代码的技术。它允许你将一个对象的属性和方法混合(或合并)到另一个对象中,从而创建一个具有多个来源的对象,这些来源可以是不同的类、原型或其…...

Mac 远程 Ubuntu
1. Iterm2 添加ssh 参考:https://www.javatang.com/archives/2021/11/29/13063392.html 2. Finder 添加远程文件管理 2.1 ubuntu 配置 安装samba sudo apt-get install samba配置 [share]path /home/USER_NAME/shared_directoryavailable yesbrowseable ye…...
黑豹程序员-h5前端录音、播放
H5支持页面中调用录音机进行录音 H5加入录音组件,录音后可以进行播放,并形成录音文件,其采样率固化48000,传言是google浏览器的BUG,它无法改动采样率。 大BUG,目前主流的支持16000hz的采样率。 录音组件 …...

Leetcode622.设计循环队列
本专栏内容为:leetcode刷题专栏,记录了leetcode热门题目以及重难点题目的详细记录 💓博主csdn个人主页:小小unicorn ⏩专栏分类:Leetcode 🚚代码仓库:小小unicorn的代码仓库🚚 &…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...