
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
用户上传文件时,客户端先计算文件 MD5。如果服务器上已存在相同 MD5 的文件(其他用户上传过),直接引用该文件记录,无需真正上传,节省带宽和时间。功能实现方式关键文件注册MySQL 预处理插入,检测用户名重复登录MySQL 查密码 + Redis 存 Token(UUID,24h过期)Token 验证Redis Get(key=token) -> 对比用户名文件上传nginx 临时目录 ->
在每个窗口内独立计数,窗口到期后计数清零。漏斗限流的核心是容量固定 + 速率固定漏斗模型:[入口] -> (容量固定) -> [出口]↓速率恒定漏斗容量:最多能容纳多少请求漏斗速率:单位时间内能处理多少请求限流方案实现难度精度突发流量推荐场景固定窗口低低不支持简单场景滑动窗口中中不支持需要精确控制漏斗限流低高不支持API 限流令牌桶高高支持秒杀/抢购。
类别要点thread不可拷贝,可移动;join/detach二选一mutexRAII用lock_guard/unique_lock条件变量atomic无锁原子操作,适用于简单类型异步任务与结果获取任务与future绑定promise主动设置异步结果函数包装与绑定lambda匿名函数对象线程池生产者-消费者模式,任务队列根据零声教育教学写作https://github.com/0voice。
│ Redis 高可用架构演进 ││ ││ 主从复制 ───→ 数据备份 ││ ↓ ││ 哨兵模式 ───→ 主从自动切换(不能横向扩展) ││ ↓ ││ Cluster ───→ 去中心化分片 + 自动故障转移 ││ ││ 持久化(RDB / AOF / 混合) ││ ↓ ││ 淘汰策略(LRU / LFU / Random / volatile) ││ │技术选型单机主从 + 哨兵 → 简单场
Redis 是后端开发中最重要的内存数据库之一,以高性能著称。但很多同学对 Redis 的认知只停留在「KV 存储」层面,对其底层的存储原理、数据模型、多线程架构等了解不够深入。本文将从线程模型存储结构数据编码网络 IO等多个维度,全面剖析 Redis 的内部原理,帮助你彻底理解 Redis 为什么这么快。既然是多线程架构,为什么命令处理还要用单线程?单线程的三大局限:不能有耗时操作— 如果有耗时
Redis 作为高性能的内存数据库,其客户端与服务端的通信机制是每个后端开发者必须掌握的核心知识。本文将从协议原理、Pipeline 模式、事务机制、Lua 脚本、异步连接等多个维度,全面剖析 Redis 的通信原理,帮助你彻底理解 Redis 的客户端与服务端交互本质。Redis 采用作为通信协议。RESP 设计简洁、易于解析、支持多种数据类型,同时具备很好的可读性。文本协议,便于调试和理解二进
Redis(Remote Dictionary Service,远程字典服务)是一个开源的内存数据库,也是目前最流行的KV(Key-Value)数据库之一。数据存储在内存中,而不是磁盘上。这使得Redis的读写速度极快,官方宣传比磁盘快约10万倍。从内存读取数据:微秒级(μs)从磁盘读取数据:毫秒级(ms)差了整整1000倍,实际场景中差距可能更大。String是Redis最基本的数据类型,它是安
多命令批处理核心思想:→ 不改底层引擎,只在协议层拦截 MULTI→ 递归复用 kvs_filter_protocol(),零侵入→ 一次 RTT 执行多条指令,减少网络往返→ 为未来事务化/原子执行/流水线打好架构基础技术特征:✓ 无需新增线程模型✓ 无需修改底层存储逻辑✓ 兼容所有引擎(ARRAY/RBTREE/HASH/SKIPTABLE)✓ 兼容持久化(FUSAVE/FULOAD/INLO
在聊线程池之前,先理解"池"这个概念。池(Pool)是一种经典的设计模式,核心思想是资源复用池的类型复用的是什么内存池动态内存分配对象池对象的创建与销毁连接池数据库 / 网络连接请求池HTTP 请求对象线程池线程的创建与销毁│ 线程池核心要点 ││ 思想:资源复用 + 生产者-消费者模型 ││ 阻塞队列:用条件变量实现线程间同步 ││ wait + lambda:防止伪唤醒 ││ 双队列优化:生产
重叠 IO是实现 IOCP 异步操作的底层机制。传统 IO:调用WriteFile后,程序阻塞直到数据写完,期间不能做其他事。重叠 IO:调用WSASend时传入一个OVERLAPPED结构体指针,函数立即返回。在上一个 IO 还没完成的情况下,你可以紧接着投递下一个 IO 请求,多个 IO 操作在时间上“重叠”执行。Reactor依赖于 epoll 检测事件,用户负责读写,适合 Linux 生态







