- 博客(121)
- 收藏
- 关注
原创 二分查找算法
二段性指:在一个区间内,存在一个明确的 “划分条件”,使得区间可以被分为两个连续的子区间,且这两个子区间呈现互斥的性质(即 “一部分满足条件 A,另一部分不满足条件 A”)。通过这个性质,每次二分都能明确 “目标一定在左半段” 或 “目标一定在右半段”,从而缩小一半范围,最终收敛到目标。题目链接public://题目是查找指定值的第一个和最后一个位置//边界条件-》nums为空是返回-1 -1//根据二段性去设计二分。
2025-10-22 13:25:02
747
原创 滑动窗口算法
滑动窗口是处理数组 / 字符串中连续子序列(子串)问题的高效算法,核心思想是用两个指针(左指针l和右指针r)形成一个 “窗口”,通过移动指针调整窗口大小,在一次遍历中找到满足条件的解。
2025-10-21 21:57:13
859
原创 双指针算法
核心思想:通过指针的合理移动,减少无效遍历,将原本需要嵌套循环(时间复杂度 (O(n^2))的问题优化为线性时间复杂度(通常 (O(n)) 或 (O(n log n)),同时多数情况下可实现原地操作(空间复杂度 (O(1))。三角形的有效条件(当数组升序排序后,设三边为 (a≤b≤c):(a + b > c)(因为 (a≤b≤c),所以 (a + c > b) 和 (b + c > a) 会自然满足)。(0,src)是我们处理过的非0数组,(src,cur)是全0数组,(cur,n)是未处理的数组。
2025-10-20 21:29:48
967
原创 贪心算法1
什么是贪心算法?贪心 = 鼠目寸光(形象描述 “局部最优” 的特点)。贪心算法的核心逻辑:将解决问题的过程拆分为多个子步骤,每一步都选择当前视角下的最优解,“希望” 通过局部最优推导全局最优。贪心算法的特点贪心策略的提出没有固定模式,不同题目可能需要完全不同的贪心逻辑。贪心策略的正确性需要严格证明(贪心可能是错误的方法,正确的贪心必须经过验证)。常用证明方法:数学中的各类证明手段(反证法、归纳法等)。典型例子例一:找零问题场景:用面值 [20, 10, 5, 1] 凑出 46,求最少硬币数。
2025-10-19 22:07:07
2675
原创 快速上手protobuf
本文围绕使用 Protocol Buffers(Protobuf)实现 1.0 版本通讯录展开,旨在展示 Protobuf 的完整使用流程及基本语法。
2025-10-06 00:35:21
976
原创 Redis分布式锁
本文围绕 Redis 分布式锁展开,先介绍其定义(解决分布式系统资源竞争,通过 Redis 设 key-value 实现加锁),再讲解核心实现:用set ex nx原子加锁 + 过期时间防死锁,用服务器标识作 value 防误解锁,用 Lua 脚本保证 “校验 - 解锁” 原子性,用看门狗线程动态续约锁;最后提及 Redlock 算法(多主节点冗余,半数以上加锁成功即有效),解决 Redis 节点宕机及主从同步延迟导致的锁失效问题。
2025-10-04 13:42:49
574
原创 Redis 缓存
本文介绍 Redis 三大用途(内存数据库、缓存、消息队列),重点聚焦最常用的缓存场景。先解释缓存本质是用快设备暂存慢设备数据,Redis 作为 MySQL 缓存可缓解数据库并发压力;接着讲两种缓存更新策略(定期生成热点数据,简单但实时性差;实时生成按需加载,需配合内存淘汰策略);最后说明缓存使用注意事项,包括缓存预热(提前导入热点数据)、缓存穿透(空值缓存或布隆过滤器应对)、缓存雪崩(错开 key 过期时间、增强集群可用性)、缓存击穿(热点 key 永不过期或用分布式锁)的解决方案。
2025-10-04 13:34:47
1027
1
原创 Redis 集群
本文介绍 Redis 集群,其核心解决存储空间不足问题。涵盖三种数据分片算法:哈希求余(扩容开销大)、一致性哈希(易数据倾斜)、Redis 采用的哈希槽分区算法(16384 个槽,平衡网络与分片需求)。讲解通过 Docker 搭建 “3 主 6 从” 集群,利用-c实现客户端请求重定向。还阐述主节点故障时从节点竞选新主的转移流程,以及集群扩容(添加节点、重分配哈希槽)等操作,同时提及集群宕机情况与应对重要性。
2025-10-04 13:22:33
725
原创 Redis 哨兵
本文围绕 Redis 哨兵机制展开,介绍其在主从复制架构中实现自动故障转移的核心作用。当主节点宕机时,哨兵机制通过独立的redis-sentinel进程(与redis-server进程分离,不存储数据仅负责监控),借助自动化流程让从节点晋升为主节点,避免人工干预的繁琐与失误。
2025-10-04 11:33:50
773
原创 Redis 主从复制
本文围绕 Redis 主从复制展开,系统解析其定位、实战配置、核心操作及底层原理,旨在解决 Redis 单节点可用性低与性能瓶颈问题。
2025-10-04 09:51:54
604
原创 Redis 事务
本文聚焦 Redis 事务的特性、原理与实践,重点对比其与 MySQL 事务的差异,明确 Redis 事务 “弱化版” 的定位及核心价值。
2025-10-02 13:53:02
1095
原创 C++ 操作 Redis
本文聚焦 C++ 环境下使用redis-plus-plus库操作 Redis 的完整流程,从环境搭建到核心命令实操,构建 “安装 - 连接 - 命令 - 优化” 的实践框架,帮助开发者快速掌握 C++ 与 Redis 的交互逻辑。
2025-10-01 20:36:07
1242
原创 Redis 数据库管理与通信基础
本文围绕 Redis 的基础操作与通信逻辑展开,系统解析数据库管理规则、客户端使用场景及 RESP 协议原理,搭建 “数据隔离 - 交互入口 - 通信语言” 的完整认知框架。
2025-10-01 18:38:12
614
原创 Redis 扩展数据类型
本文聚焦 Redis 除基础类型外的五大特殊数据类型 ——Stream、Geospatial、HyperLogLog、Bitmap 与 Bitfields
2025-10-01 12:06:52
606
原创 Redis Zset 类型全解析
本文围绕 Redis Zset(有序集合)展开全面解析,同时聚焦其底层核心结构跳表,构建 “类型特性 - 命令体系 - 编码逻辑 - 应用场景 - 跳表原理” 的完整知识链。
2025-10-01 12:06:13
1035
原创 Redis Set 类型全解析
本文围绕 Redis Set 类型展开系统性解析,从核心特性、命令体系、底层编码到应用场景与实践优化,构建完整知识框架。
2025-09-30 22:52:20
936
原创 Redis List 类型全解析
本文围绕 Redis List 类型展开系统性解析,从核心特性、命令体系、底层编码到应用场景与优化逻辑,构建完整知识框架。
2025-09-30 22:27:48
1194
原创 Redis String 类型全解析
本文围绕 Redis String 类型展开全方位解析,从核心特性、命令体系、编码优化、应用场景到业务适配逻辑,构建了完整的知识框架。
2025-09-29 15:47:07
1057
原创 redis通用命令
本文围绕 Redis 的基础命令与底层原理展开,系统梳理四类核心命令:键值对基础操作(set/get)、键的批量管理(keys/exists/del)、过期时间控制(expire/ttl)、数据类型查询(type),详细说明各命令的语法、特性与使用注意事项,重点警示keys命令的生产环境风险及del命令的误删影响。在此基础上,深入解析面试高频考点 “键过期策略”(定期删除 + 惰性删除),并拓展讲解优先级队列、时间轮两种定时器实现原理,揭示 Redis 策略选择的底层逻辑。
2025-09-28 15:43:48
1121
原创 环境搭建,Ubuntu 安装、客户端使用与性能认知
本文从 Ubuntu 的 Redis 安装实操切入,带你完成 “安装 - 配置 - 连接” 的全流程,拆解了三类客户端的适用场景,更澄清了 Redis 的性能边界。
2025-09-28 15:43:16
960
原创 从单机到分布式:系统架构演进的七步成长指南
本文以 “问题驱动演进” 为核心逻辑,系统拆解了从单机到分布式的 7 步架构成长路径。从单机架构的原始形态出发,依次讲解了应用与数据库分离、引入应用集群与负载均衡、实现数据库读写分离、部署 Redis 缓存、落地分库分表、拆分微服务的演进脉络,每一步均对应业务增长中出现的资源冲突、流量压力、存储瓶颈等具体问题。同时,文章前置解析了 Redis 的核心价值,补充了分布式领域易混淆的核心概念(如集群、主从、中间件等),并客观分析了微服务的利弊。
2025-09-28 11:45:29
894
原创 MySQL --视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。
2024-09-27 06:00:00
1070
原创 MySQL --索引(下)
索引覆盖是指索引上的信息足够满足查询请求,不需要再回到主键或数据表中去取数据。当查询可以完全利用索引中的数据满足查询需求时,就称之为索引覆盖。
2024-09-26 07:00:00
1400
原创 MySQL --事务
事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。事务就是要做的或所做的事情,主要用于处理操作量大,复杂度高的数据。
2024-09-26 05:00:00
1670
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅