1 个三级分类
三级分类
技术体系化整理、工程实践与开发笔记。
专题分组
1 个三级分类
三级分类
2 个三级分类
3 个三级分类
2 个三级分类
2 个三级分类
3 个三级分类
目录 [[toc]] 介绍 **✅ 什么是 Catch-All 路由?** > Catch-All 路由 指的是:一个能匹配“任意路径”的通配型路由。 它一般会使用 **路径参数 path 类型**,比如: 这个 / 开头的 /{full_path:path},意思是: • 匹配任何以 / 开头的请求; • 把完整的路径作为字符串传入 full_path; • 哪怕路径是 /foo/bar/hello.jpg,它也能匹配! 所以叫 C…
目录 [[toc]] 介绍 **✅ 什么是等幂(Idempotency)?** > 等幂 > > > **无论这个操作被执行多少次,结果都是一样的,不会因为多次执行而产生副作用。** 通俗一点说:**“点一次和点一百次,效果是一样的。”** **✅ 在接口中,什么是等幂操作?** 在 Web / API 开发中,一个 **等幂操作的接口**,意味着客户端(用户、服务、浏览器)**多次请求同一个接口,结果不变,也不会影响系统的状态或数据…
目录 [[toc]] 介绍 **✅ 一、什么是单例模式?** > 一个类在整个程序运行过程中,只能被创建一次实例,且这个实例是全局共享的。 **✅ 二、为什么要用单例模式?** 适用于那些: • 系统中只应该有一个实例存在的对象 • 该对象需要被多个地方共享使用(比如:**配置类、数据库连接池、线程池、缓存、日志器**) 相关模式实现 **⭐ 方式一:最经典的懒汉式(线程不安全)** 只有在**第一次调用时**才创建实例,**之前不初…
目录 [[toc]] 以下的方案是 **脚本运行场景下** 是一个非常合理的 **轻量级连接管理方案。【不是特定接口下,而是面对长时间地读写数据库的脚本操作】** 有很多时候 有这样的情况发生,就是用脚本去爬某个服务,需要持续不断地写数据库,但是运行一段时间后出现了这样的错误: 这是 **MySQL 客户端(例如 Python、Go、Django、GORM 等)在执行 SQL 期间与 MySQL 服务端的连接中断**,是 **MySQ…
目录 [[toc]] **悲观锁(Pessimistic Lock)** **✅ 核心思想:** 始终**假设最坏的情况**:别人一定会修改数据,所以每次读写都会加锁,确保操作安全。 **在读数据时就加锁,防止其他事务修改这条数据,确保当前事务后续的操作(尤其是写)是安全的。** 悲观锁就是 “**读时加锁**,确保写时没有并发冲突”,必须配合事务使用,**先查锁定,后更新提交**,这是它的核心机制。 **🛠 实现方式:** **数据…
目录 [[toc]] **什么是“锁”?** *锁(Lock)**是数据库为保证多用户并发访问数据时,数据的一致性与完整性而采取的一种机制。 > 就像你在一个文档上修改,防止别人同时修改冲突,给它**上锁** 数据库主要有两类锁: | **分类** | **子类型** | **简要说明** | | ------------ | ---------------- | -------------------------------- |…
目录 [[toc]] 介绍 **Database Warm-up** **🧠 一句话理解** **数据库**是在应用启动阶段,**提前建立数据库连接** 或 **执行轻量 SQL 操作**,从而 **加快首个请求的响应速度** 的一种优化手段 **🎯 为什么需要数据库预热?** 当 FastAPI 或其他 Web 服务刚启动时: • 你虽然配置了数据库连接池(比如 SQLAlchemy、asyncpg); • 但其实它 **并不会立即…
目录 [[toc]] 主键自增id **🌱 1. 自增 ID(Auto Increment ID)** **✅ 特点:** • 数据库自带(MySQL, PostgreSQL 都支持) • 简单易用,可读性强 • 一般作为主键自带聚簇索引(主键就是物理存储顺序) **❌ 缺点:** • **单点瓶颈**(高并发环境中,写入需要锁定 ID 生成器) • **不适合分布式**(各节点之间 ID 容易冲突) • **不适合高频写入**(写热…
目录 [[toc]] ElasticSearch的安装说明、介绍与简单使用。 安装说明 拉取镜像: 启动es: 检查是否启动: 安装 Kibana Kibana 是 ElasticSearch 的可视化工具,你可以使用它来通过图形界面管理和展示数据。 可视化地址: 介绍与说明 Elasticsearch 与传统的关系型数据库不同,它并不使用“数据库”和“表”的概念。相反,Elasticsearch 使用“**索引**”(index)来…
数据库与缓存目录 [[toc]] 使用redis 进行简单的队列很容易,不需要使用较为复杂的MQ队列,直接使用redis 进行,不过唯一不足的需要自己构造生产者消费者,这里使用while True的方法进行消费者操作 @TOC 介绍 key-value 存储系统,是跨平台的非关系型数据库。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sort…