【苍穹外卖 | 项目日记】第四天

前言:

             今天状态还可以,既有自己实战独立写接口,又听了课,学习了新的知识【苍穹外卖 | 项目日记】第四天_第1张图片

目录

前言:

今日完结任务:

今日收获:

实现店铺状态接口 

杂项知识点:

总结:


 

 

今日完结任务:

  • 实现删除套餐接口
  • 实现修改套餐接口
  • 实现起售停售接口
  • 实现查询店铺状态接口
  • 实现修改店铺接口

今日收获:

前几个关于店铺的接口其实没有什么收获,因为还是简单的CURD操作,因此我在这里不多做介绍,但是在实现查询店铺状态接口的时候,我学习到了一个很重要的知识点: Redis

实现店铺状态接口 

店铺无非就两个状态:开业中和已打烊。按照我们之前的思路:首先在MySQL中建表,然后我们的接口实现对这个表进行读取或更改。但是这样却存在两个问题

  1. 如果建表,这个表就一行一列,只有一个 status 状态,而我们是否有必要为了这样一个简单的数据去单独建立一张表呢?
  2. 店铺的营业状态属于高请求类型,只要用户点进这家店铺,就要发送这样的请求查询店铺状态,而MySQL是把表存储在磁盘当中的,也就是说在读写操作上并不占优,如果在高并发的情况下,是否会影响体验呢?

为了解决这个问题,我们在这里使用的是键值类型的数据库Redis。

【苍穹外卖 | 项目日记】第四天_第2张图片

关于Redis我也写了一篇简单介绍的文章:

【从零开始学习Redis | 第一篇】快速了解Redis_我是一盘牛肉的博客-CSDN博客

并且Redis会把数据存放在内存中,拥有较高的读写速度,天生就适合处理高并发请求数据。

杂项知识点:

在java应用Redis的时候,配置类中的连接工厂和Key序列化器是什么?

  1. 连接工厂(RedisConnectionFactory):连接工厂负责创建和管理与 Redis 数据库的连接。通过配置连接工厂,我们可以指定连接到 Redis 服务器的方式(比如单机、主从、哨兵、集群等),以及设置连接池的一些参数(如最大连接数、最大空闲连接数等)。连接工厂是 RedisTemplate 连接 Redis 的入口,它提供了与 Redis 进行交互的底层实现。

  2. 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 数据库,并确保数据的一致性和可靠性。

总结:

        今天还是收获挺多的,唯一的遗憾就是白天的时候有点摆,没怎么学,一直到下午四点才开始学,要注意这个问题

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

69e9169c980f43e0aad31ff9ada88a9c.png

 

 

 

 

 

你可能感兴趣的:(【苍穹外卖】,java,开发语言,spring,数据库,后端)