自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 介绍Redis的持久化机制

Redis 提供两种持久化机制:RDB 和 AOF。RDB 是默认方式,通过定时生成二进制快照文件(手动/自动触发),恢复速度快但可能丢失较多数据。AOF 记录所有写命令日志,数据完整性更高但文件体积大。Redis 4.0 引入混合持久化,在 AOF 重写时结合 RDB 格式和 AOF 增量命令,兼顾恢复速度和数据安全。RDB 适合备份和快速恢复,AOF 更适合数据完整性要求高的场景,混合模式则结合了两者优势。

2025-10-01 10:24:05 990

原创 跟着Carl学算法--单调栈

leetcode基础算法--单调栈

2025-09-27 10:27:14 798

原创 Redis的数据如何和mysql进行同步?

Redis与MySQL数据同步策略分析 摘要:针对Redis作为MySQL缓存时的数据同步问题,本文对比了三种缓存更新策略:内存淘汰、超时剔除和主动更新。重点分析了主动更新的三种实现方式(旁路缓存、读写穿透、写回),以及三种数据同步方案(设置有效期、同步双写、异步通知)。特别探讨了同步双写中"先更新数据库再删除缓存"的优势,并介绍了基于MQ和Canal的异步通知方案。通过对比各策略的优缺点和适用场景,为不同业务需求提供了数据同步的技术选型参考。其中Canal方案基于MySQL主从同步原理

2025-09-24 09:27:57 1010

原创 跟着Carl学算法--动态规划【7】

leetcode基础算法--字符串DP系列

2025-09-19 21:29:08 1079

原创 跟着Carl学算法--动态规划【6】

leetcode基础算法--序列DP系列

2025-09-16 15:23:35 645

原创 跟着Carl学算法--动态规划【5】

leetcode基础算法--买卖股票系列

2025-09-14 14:56:13 1005

原创 跟着Carl学算法--动态规划【4】

leetcode算法基础--打家劫舍系列

2025-09-12 10:47:00 597

原创 Redis主从复制的概念以及数据同步的流程

Redis主从复制是一种异步数据同步机制,通过主节点(Master)处理写请求并同步到从节点(Replica)来实现高并发读和数据备份。数据同步分为全量复制和增量复制:全量复制时主节点生成RDB文件发送给从节点;增量复制则利用环形缓冲区repl_backlog记录写操作,主节点比对从节点的offset发送差量数据。当缓冲区数据被覆盖时,会触发全量复制。该机制通过Replication Id和offset标识数据集和同步进度,有效平衡了数据一致性和性能需求。

2025-09-08 09:04:43 923

原创 跟着Carl学算法--动态规划【3】

leetcode基础算法--完全背包系列

2025-09-06 10:10:26 855

原创 Redis的数据过期策略有哪些?

Redis采用两种策略处理过期Key:1)惰性删除,仅在访问Key时检查并删除过期Key,节省CPU但可能内存泄漏;2)周期删除,通过定时任务主动清理过期Key,分为慢速模式(默认每秒10次,耗时≤25ms)和快速模式(间隔≥2ms,耗时≤1ms)两种。两种模式均采用抽样检查机制,若过期率>10%则继续清理,否则终止。该机制平衡了内存使用和性能开销。

2025-08-05 07:48:10 763

原创 跟着Carl学算法--动态规划【2】

leetcode基础算法--01背包系列

2025-07-31 00:19:43 822

原创 跟着Carl学算法--动态规划【1】

leetcode基础算法--基础DP

2025-07-29 09:19:37 804

原创 如何保证接口的幂等性

本文讨论了接口幂等性的概念及其解决方案。幂等性确保多次执行同一操作对系统的影响与执行一次相同,主要解决前端重复提交、接口超时重试和消息重复消费三类问题。针对前端重复提交,建议采用前端控制(如禁用按钮)和Token机制(后端验证)。接口超时重试可通过分布式锁、数据库唯一索引或乐观锁/悲观锁实现。消息重复消费则可通过唯一ID机制配合独立存储来管理消息状态。这些方案各有优缺点,需根据具体场景选择,以确保系统稳定性和数据一致性。

2025-07-27 09:33:27 753

原创 跟着Carl学算法--贪心【2】

leetcode基础算法--贪心

2025-07-25 10:22:58 582

原创 Ribbon中常用的负载均衡策略

微服务负载均衡策略概述 常见的微服务负载均衡策略包括:轮询策略(均匀轮流调用)、随机策略(避免预测性访问)、加权响应时间策略(根据实例性能分配请求)。对于更复杂场景,还有重试策略(自动重试不可用实例)、最佳可用策略(选择负载最低实例)和可用性过滤策略(智能过滤问题实例)。这些策略可根据实际需求选择,以实现高效、稳定的请求分发,优化系统整体性能与用户体验。

2025-07-24 00:23:15 258

原创 什么是分布式事务,分布式事务的解决方案有哪些?

本文介绍了分布式事务的四种模式:两阶段提交(2PC)、XA模式、AT模式和TCC模式。2PC通过准备和提交两阶段确保事务一致性,但存在性能问题。XA模式基于2PC实现,强一致但资源锁定周期长。AT模式通过快照和全局锁提高性能,属于最终一致。TCC模式由应用层实现补偿操作,性能最佳但不支持强一致。此外还简要提及Saga模式,适合长流程场景但需手动编写补偿逻辑。四种模式各有优缺点,适用于不同业务场景。

2025-07-22 16:05:18 897

原创 跟着Carl学算法--贪心【1】

leetcode基础算法--贪心

2025-07-20 09:47:37 739

原创 什么是服务雪崩,以及服务雪崩的解决方案

微服务架构中的服务雪崩是当核心服务故障时,引发的级联失败,导致整个系统崩溃。为应对此,主要有五种解决方案:超时处理、限流、服务熔断、服务降级、服务隔离

2025-07-18 12:06:08 1032

原创 跟着Carl学算法--回溯【2】

leetcode算法基础--回溯

2025-07-16 22:06:53 821

原创 分布式锁的常见实现方案

分布式锁是实现跨JVM进程对共享资源互斥访问的机制,常见实现方案包括基于数据库、ZooKeeper和Redis等。Redis简易分布式锁通过SETNX命令获取锁,使用Lua脚本保证释放锁的原子性,并设置过期时间避免死锁。但简易方案存在锁过期问题,Redisson提供了更完善的解决方案,其WatchDog机制能自动续期锁时间,确保业务执行期间锁不会失效。在生产环境中,Redisson的分布式锁是更可靠的选择。

2025-07-15 16:06:41 627

原创 跟着Carl学算法--回溯【1】

leetcode算法基础--回溯

2025-07-14 00:22:50 962

原创 Spring Cloud Gateway中常见的过滤器

Spring Cloud Gateway 的过滤器分为两类:GatewayFilter(绑定特定路由)和 GlobalFilter(作用于所有路由)。前者用于特定服务的定制化处理,后者处理通用功能。过滤器可修改请求/响应,执行顺序由order值决定,值越小在pre阶段越先执行,在post阶段越后执行。常见过滤器包括添加/修改请求头、路径重写、限流、断路器等,支持通过YAML配置。

2025-07-13 00:06:08 505

原创 跟着Carl学算法--二叉树【3】

leetcode基础算法--二叉树

2025-07-11 23:15:21 766

原创 微服务项目远程调用时的负载均衡是如何实现的?

负载均衡是微服务架构的关键技术,分为服务端负载均衡(如Nginx、HAProxy)和客户端负载均衡(如Ribbon)。服务端方案集中管理但存在单点风险,客户端方案复杂度高但更灵活。Spring Cloud提供了两种实现方式:早期使用Feign+Ribbon(2020前),后期改用Feign+Spring Cloud LoadBalancer,支持轮询等算法。开发者还可通过配置类自定义负载均衡策略,实现更灵活的服务调用。两种方式均通过拦截器机制实现服务发现和请求路由,提升系统可用性和性能。

2025-07-10 15:56:15 1237

原创 Spring Cloud Gateway 的路由和断言是什么关系?

Spring Cloud Gateway路由机制解析:路由由ID、目标URI、断言和过滤器组成,通过断言匹配请求条件后转发到指定服务。内置断言支持路径、时间、HTTP方法等多种匹配方式,还支持自定义断言实现。工作流程包括请求匹配、过滤处理、转发请求和响应处理。开发者可灵活配置路由规则,结合预定义或自定义断言实现复杂路由逻辑。(148字)

2025-07-09 21:25:20 1008

原创 跟着Carl学算法--二叉树【2】

leetcode基础算法--二叉树

2025-07-09 12:23:52 557

原创 介绍一下Redis的常用数据结构

Redis提供了五种核心数据结构:String(字符串)、List(列表)、Hash(哈希)、Set(集合)和ZSet(有序集合),每种结构对应不同的应用场景。底层实现采用多种编码方式,如SDS、ZipList、QuickList等,根据数据特征动态优化存储效率。String类型使用SDS实现动态扩容和高效访问;List在3.2版本后统一采用QuickList(结合LinkedList和ZipList优势);Hash和ZSet根据不同场景选用ZipList或哈希表。Redis通过编码转换机制自动选择最优底层

2025-07-07 15:43:32 875

原创 Eureka和Nacos都可以作为注册中心,它们之间的区别

Eureka和Nacos都可以作为注册中心,它们之间有哪些区别

2025-07-05 23:44:57 1434 1

原创 跟着Carl学算法--二叉树【1】

leetcode基础算法--二叉树

2025-07-05 06:15:35 849

原创 微服务常见组件

介绍微服务常用组件及其产生背景

2025-07-03 13:38:39 1204

原创 为什么数据库分页直接定位到上一页最后一个排序值,会比Offset高效?

为什么数据库分页直接定位到上一页最后一个排序值,会比Offset高效?两个方案的性能差距在哪里

2025-07-02 20:57:02 450

原创 跟着Carl学算法--栈和队列

leetcode算法基础--栈和队列

2025-07-01 22:25:41 978

原创 Redis网络模型

根据虎哥Redis教程完善的Redis网络模型笔记

2025-07-01 15:07:08 1400

原创 Spring学习笔记【10】

Spring拦截器

2025-06-30 09:58:36 992

原创 跟着Carl学算法--字符串

leetcode算法基础--字符串

2025-06-28 06:27:18 820

原创 Spring学习笔记【9】

SpringMVC学习笔记

2025-06-27 09:54:04 806

原创 Spring学习笔记【8】

动态SQL

2025-06-25 23:33:00 825

原创 跟着Carl学算法--哈希表

leetcode算法基础--哈希表

2025-06-24 23:26:15 803

原创 Spring学习笔记【7】

Mybatis映射文件关键元素的学习使用

2025-06-22 22:22:15 604

原创 跟着Carl学算法--链表

leetcode算法基础--链表

2025-06-22 09:10:34 1463

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除