2026-7-20-cnblog

📅 2026/7/22 6:24:43 👁️ 阅读次数 📝 编程学习
2026-7-20-cnblog

今天上午10点到12点把Java集合总结完了,了解到很多。

下午从1点半开始,继续把reggie外卖优化部分看完。现在优化点有下面几个:

  1. 使用git管理代码;
  2. 使用redis缓存热点数据;
  3. 配置数据库主从模式,实现读写分离,让读操作走从库,写操作走主库,这样大大提高性能,提升用户体验。
  4. Nginx服务器、反向代理、负载均衡;
  5. Yapi、Swagger、Knife4J
  6. Reggie外卖项目部署;

2、Redis

Spring Cache框架自身提供一些实现缓存的方式,比如ConcurrentHashMap,但是这个只运行在内存,一旦停止服务端,缓存中的数据就会消失。

我们导入Redis实现的Cache实现类,这个也是基于内存,但是可以设置过期时间,不会因为服务器停止立马丢失数据。

Spring框架提供了使用注解的方式,实现数据一致性。

当我们查询时,流程为:

  1. 缓存中存在,直接返回;
  2. 缓存不存在,从数据库查询,同时保存到缓存中;

当我们增删改时,都需要做到数据同步,可以使用注解实现,修改数据时,同时修改缓存。

3、主从模式是依靠MySQL数据库内部的二进制日志实现的,不依赖第三方工具,写操作会被记录到主库的二进制日志中,所有从库会异步从主库实现数据同步,主要开启两个线程,IO和sql,IO负责读取主库的二进制文件并解析出sql操作,然后sql线程完整执行主库的操作,实现数据同步。

对于读多写少的场景,主从模式可以大大提高性能,并且从库还可以做负载均衡。

需要用到的框架是ShadingJDBC:

  • 导入依赖坐标;
  • 进行主从配置,配置数据源,从库负载均衡的策略;
  • 开启Bean覆盖;

4、Nginx服务器

image-20260720155444307