自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(190)
  • 资源 (2)
  • 收藏
  • 关注

原创 redis 错误消息: BUSYKEY Target key name already exists.

迁移数据到目标 Redis 实例时,若目标键已存在且未启用覆盖。,但当前操作未明确允许覆盖。错误时,通常是因为你正在尝试覆盖一个。不允许覆盖已存在的键。参数,强制覆盖目标键。命令不允许覆盖目标键。

2025-03-02 14:30:00 290

原创 redis replication 环形缓冲区算法

用于临时存储主节点最近传播的写命令。当从节点短暂断开后重连时,如果所需数据仍在缓冲区中,主节点可以直接发送增量数据,避免全量同步的开销。Redis 的环形缓冲区通过高效的内存管理和偏移量追踪机制,显著提升了主从复制的健壮性和性能。(Partial Resynchronization)的核心机制。(Replication Backlog)是实现主从节点。是避免全量同步的关键。

2025-03-02 03:30:00 1225

原创 redis repl_backlog_first_byte_offset 这个字段的作用

repl_backlog_first_byte_offset` 是 Redis 复制积压缓冲区(Replication Backlog)中的一个关键字段,其作用是。当主从节点断开重连时,Redis 需要通过复制积压缓冲区(一个环形内存区域)快速恢复增量数据同步。积压缓冲区是环形的(类似一个循环队列),当写入数据超过缓冲区容量时,旧数据会被覆盖。(即缓冲区的起始位置对应的全局复制偏移量)。会向前推进(即增加),表示缓冲区的新起点。从节点重连主节点时,会将自己的。(已复制的偏移量)与主节点的。

2025-03-01 22:47:34 253

原创 redis slaveof 命令 执行后为什么需要清库重新同步

如果从节点之前有其他数据(例如曾是其他主节点的副本,或自身是独立主节点),直接保留数据会导致新旧数据混合。主节点的数据状态可能与从节点存在冲突(例如相同的键但值不同),导致数据逻辑错误。

2025-03-01 22:45:37 949

原创 golang panic 函数用法

通过合理使用这两个关键字,可以提升程序的健壮性,避免因未处理异常导致的崩溃。是用于处理运行时异常的关键字。

2025-02-28 16:30:00 266

原创 golang lumberjack 日志包

Lumberjackloglogruszap` 等)结合使用。它的核心功能是自动管理日志文件的切割、备份和清理,避免日志文件无限增长占用磁盘空间。当单个日志文件大小超过设定阈值(如100MB)时,自动创建新文件,旧文件按时间戳重命名备份。支持设置日志文件的最大保留时间(如保留最近7 天的日志),超时文件自动删除。可设置最大备份文件数(如最多保留5 个备份),超出数量时删除最旧的日志。支持并发写入,适用于高并发场景。

2025-02-28 02:45:00 300

原创 Mockito doreturn 和 thenreturn 这两个方法的区别

在于是否会在存根(Stubbing)过程中调用真实方法。都用于设置模拟对象的方法返回值,但它们的。在 Mockito 中,

2025-02-27 19:59:06 201

原创 redis restore 命令的用法

命令生成)恢复为 Redis 的键值。它在数据迁移、备份恢复和跨实例同步等场景中非常有用。,Redis 提供了灵活的数据管理能力,适用于多种运维场景。命令用于将序列化后的数据(通常由。

2025-02-27 19:54:35 562

原创 redis rdb文件格式&解析

Redis的RDB文件是二进制格式的持久化文件,解析需按特定结构逐字节处理。[魔数(5字节)] [RDB版本(4字节)] [数据库数据区] [0xFF] [校验和(8字节)][过期时间(可选)] [LRU/LFU信息(可选)] [类型(1字节)] [键] [值]0xFE [数据库编号] [键值对1] [键值对2] …

2025-02-26 16:00:00 322

原创 redis PSYNC命令详解

PSYNC?-1是 Redis 主从复制中从节点(Replica)向主节点(Master)发起全量同步(Full Resynchronization)的标准命令格式。PSYNC?-1?-1Redis 的PSYNC命令用于主从同步,支持和PSYNC?-1是使用的命令格式,强制触发全量同步。PSYNC?-1?-1主节点收到命令后,会检查参数:因复制 ID 和偏移量无效,主节点判定需全量同步。主节点返回格式:repl_idoffsetforkPSYNC?

2025-02-26 08:53:01 593

原创 redis REPLCONF 命令详解

REPLCONF是 Redis 主从复制(Replication)中用于配置复制流程的内部命令。它主要用于主节点和从节点之间的通信,帮助实现复制状态同步、心跳检测和偏移量确认等功能。以下是REPLCONF。

2025-02-25 16:30:00 727

原创 electron 的原理,使用场景,简单用法

preloadipcMain适合需要同时支持多操作系统的工具类应用(如 VS Code、Figma、Slack)。团队熟悉 Web 技术栈时,可快速构建原型或成熟应用。需同时访问 Web 内容和本地系统资源的场景(如 Git 客户端、聊天工具)。内部管理系统、数据可视化仪表盘等。

2025-02-25 02:00:00 790

原创 Electron支持的存储类型

数据在应用重启后保留(localStorage)或会话期间保留(sessionStorage),复杂数据用 SQLite/IndexedDB。// 渲染进程(如 React/Vue 组件):用户配置、轻量级数据(跨进程、持久化)根据需求选择合适的存储方式,小型配置用。:保存用户配置、日志文件、大型数据文件。:保存敏感信息(密码、API 密钥):简单的键值对存储(仅限渲染进程):结构化数据存储,支持事务和查询。// 渲染进程中打开数据库。// 主进程或渲染进程。:关系型数据、复杂查询。

2025-02-24 16:00:00 635

原创 golang range 的用法

range支持数组、切片、map、字符串和通道的遍历。返回值形式灵活,可选择性忽略索引或值(用遍历 map 时顺序随机,字符串遍历按 Unicode 码点处理,通道遍历需提前关闭。

2025-02-24 02:30:00 1073

原创 redis sentinel配置“sentinel parallel-syncs mymaster 1“详解

当 Sentinel 触发故障转移并选出新主节点后,剩余的从节点需要与新主节点重新建立复制关系(即执行。,可以在故障转移后平衡数据同步速度和主节点稳定性,避免服务雪崩。,目的是避免新主节点因过多并发同步请求导致性能问题。(Redis 默认保守配置,避免新主节点过载)。宕机,Sentinel 触发故障转移,选举。在 Redis Sentinel 的配置中,在 Sentinel 配置文件(如。

2025-02-23 14:00:00 441

原创 redis SLAVEOF NO ONE 命令详解

通过提升从节点为独立主节点实现快速恢复。使用时需严格评估数据一致性、客户端路由及 Sentinel 集成,避免引入运维风险。在自动化高可用场景中,优先依赖 Redis Sentinel 或 Redis Cluster 实现故障切换。是 Redis 中一个关键命令,用于将一个从节点(Replica),停止其复制行为,使其独立处理读写请求。是 Redis 主从架构中。

2025-02-23 02:45:00 706

原创 手动搭建Redis1主2从+ 3 Sentinel 高可用集群

通过以上步骤,您已成功部署一个基于 Redis Sentinel 的高可用集群。Sentinel 会持续监控主节点,并在故障时自动切换至从节点,保障服务可用性。查看 Sentinel 日志文件(如。

2025-02-22 10:06:53 384

原创 go channel 的用法和核心原理、使用场景

Channel 是 Go 并发模型的核心组件,通过通信共享内存的设计哲学,简化了并发编程的复杂性。合理使用无缓冲 Channel 实现同步,有缓冲 Channel 实现异步队列,配合select和 Goroutine 可以构建高效、清晰的并发架构。

2025-02-22 10:03:54 856

原创 redis sentinel 主从切换, sentinel 具体做了那些事?

其核心依赖 Sentinel 节点的共识机制(Raft 算法)和对 Redis 协议的深度控制。合理配置参数和监控是保障切换可靠性的关键。Redis Sentinel 的主从切换流程是分布式系统协作的典型范例,通过。,涉及多个 Sentinel 节点协作完成。Redis Sentinel 的主从切换(故障转移)是一个。

2025-02-21 14:30:00 584

原创 redis sentinel 为什么需要 mastername, 这个字段的作用

它解耦了物理拓扑与业务逻辑,使得 Sentinel 能够高效管理多集群,并实现客户端的动态服务发现。,用于唯一标识一个主从集群(即一组主节点及其关联的从节点)。它的核心作用是为 Sentinel 提供。,使得 Sentinel 能够管理和监控多个独立的主从集群,同时客户端也能通过该名称动态发现主节点。是保障 Redis 高可用架构稳定性的关键。是 Redis Sentinel 中。Redis Sentinel 中的。

2025-02-21 00:45:00 353

原创 Redis sentinel 主从切换可能产生问题&使用场景&注意事项

、多节点部署和监控告警,尽可能降低数据风险。对于关键业务,建议结合业务层的重试机制和数据校验逻辑。Redis Sentinel 是 Redis 官方提供的高可用性(HA)解决方案,主要用于。尽管它解决了单点故障问题,但确实存在一定的数据风险,需要结合场景权衡使用。,适用于对可用性要求高于强一致性的场景。使用时需通过合理配置(如。Redis Sentinel 的核心价值是。

2025-02-20 16:00:00 421

原创 Redis slaveof 主从复制与redis-shake对比

在需要一次性迁移、跨环境同步或数据清洗的场景下,Redis-Shake 是更优选择;是 Redis 原生的主从复制命令,功能强大且高效,但在某些复杂场景下存在局限性。作为专门的数据迁移/同步工具,弥补了。更适合长期主从架构的搭建。

2025-02-20 01:00:00 998

原创 分布式系统的网络分区故障

网络分区是分布式系统的核心挑战之一,无法完全避免,但可通过合理的架构设计(如 CAP 权衡、多数派决策)和冲突解决机制降低风险。理解网络分区的本质,是构建高可用、强一致系统的关键基础。

2025-02-19 14:00:00 1364

原创 redis sentinel 数据丢失风险

Redis Sentinel 的高可用性依赖于合理的主从复制和持久化配置。数据丢失的风险主要来自异步复制的固有缺陷,而非 Sentinel 本身。通过优化配置和监控,可以显著降低风险。

2025-02-19 02:00:00 462

原创 Lettuce对redis sentinel的支持

Lettuce与Redis Sentinel的交互方式支持直接连接Sentinel节点(用于管理任务)和通过Sentinel自动发现Redis主节点两种模式。RedisURI的必要性两种模式均需提供RedisURI,且支持配置多个Sentinel主机以实现高可用。

2025-02-18 15:00:00 1864

原创 Redis Sentinel

高可用解决方案:Redis Sentinel为Redis提供监控、自动故障转移和配置管理功能,确保集群稳定运行。监控:持续检测主节点(master)和副本节点(replica)的健康状态。自动故障转移:主节点故障时,自动选举并提升副本节点为新主节点。配置提供:作为客户端连接的配置中心,对外提供最新的主节点地址。

2025-02-18 04:15:00 793

原创 Linux fsync 系统调用

在 Linux 中,fsync 是一个关键的系统调用,用于确保文件数据的持久化存储。其核心原理是强制将文件在内存中的修改(即 页面缓存,Page Cache)同步到物理磁盘。

2025-02-17 14:00:00 2373

原创 Redis AOF缓冲区刷盘策略

随后根据配置的策略将缓冲区数据写入磁盘的 AOF 文件。,开发者可根据业务需求在数据安全性和性能之间找到最佳平衡点。Redis 执行写命令时,会先将命令写入。

2025-02-17 01:00:00 473

原创 Redis AOF 文件损坏场景和预防措施

AOF 文件损坏的根源通常与 硬件稳定性、操作规范、配置合理性 相关。通过 定期备份、监控告警、合理配置 以及 谨慎操作,可显著降低风险。若损坏发生,优先使用 redis-check-aof 工具修复,并确保有 RDB 快照作为兜底方案

2025-02-16 17:24:57 870

原创 如何避免redis长期运行持久化AOF文件过大的问题:AOF重写

通过 重建 AOF 文件,解决以下问题:体积压缩:消除冗余命令(如多次修改同一 key),生成最小操作集合。混合持久化支持(若启用 aof-use-rdb-preamble yes):生成 RDB 头部 + 增量 AOF 命令。数据一致性:确保 AOF 文件仅包含有效数据集的完整操作记录。

2025-02-16 17:14:26 555

原创 redis RDB & AOF 两种持久方案的优缺点

RDB优点生成紧凑的单文件快照,适合定时备份(如每小时/每日归档)。灾难恢复友好,支持远距离传输或云存储(如Amazon S3)。高性能:主进程仅需fork子进程处理持久化,无磁盘I/O负担。大数据集重启速度快于AOF,副本支持部分重新同步。RDB缺点可能丢失最后一次快照后的数据(默认配置下通常丢失5分钟以上数据)。大数据集频繁fork()可能导致短暂服务延迟(毫秒级甚至秒级)。AOF优点高持久性:支持no/everysec/always三种fsync策略(默认每秒同步,性能仍高)。

2025-02-16 16:49:55 831

原创 redis数据迁移工具竞品对比分析

的组合方案,既可保证迁移完整性,又能实现平滑切换。(基于16核32GB环境,迁移100GB数据)根据实际需求选择工具,建议生产环境采用。

2025-02-16 01:30:00 315

原创 Redis集群的三种模式

主从复制:快速实现读写分离,适合中小规模系统哨兵模式:需要高可用但数据量不大的场景(如<16GB内存)Cluster模式:数据量超过单机内存容量或需要线性扩展的场景

2025-02-15 18:13:19 384

原创 什么事SSE& SSE vs websocket

SSE 是实现服务器到客户端实时单向通信的高效方案,适合需要轻量级、易集成的场景(如通知、数据流)。在 Spring 中可通过。

2025-02-15 16:12:42 1012

原创 Spring MVC Streaming and SSE Request Processing& SSE可以实现chatgpt一次请求分批次响应的效果

本文通过三类对象(ResponseBodyEmitter、SseEmitter、StreamingResponseBody)展示了 Spring MVC 处理异步与流式响应的不同方案,涵盖服务端实现、客户端交互及效果验证,适用于实时数据推送、大文件传输等场景。

2025-02-15 16:03:47 750

原创 K8S的域名解析

在 Kubernetes 中,域名解析(DNS 解析)是通过 CoreDNS 或 kube-dns 服务实现的。

2025-02-12 16:00:00 2318 1

原创 redis cluster 增加节点 rebalance 的具体过程,如何做到不停值对外服务的

Redis 的槽位迁移是一个渐进式的过程,确保在数据重新分配和迁移的过程中,集群能够继续对外提供服务。

2025-02-12 01:00:00 282

原创 Hash Slot Resharding and Rebalancing for Redis Cluster

在初始的3节点集群中,槽的分配是:redis1(0-5460),redis2(5461-10922),redis3(10923-16383),每个节点大约分配了5461个槽。:通过命令 redis-cli --cluster add-node 添加新节点到现有的集群中,但初始时这些新节点没有分配槽。:使用 --cluster-use-empty-masters 参数进行槽的重新分配,使新加入的节点也能分配到槽。:新节点加入后,原有的槽分配没有变化,显示新节点还是0槽,所以需要手动重新平衡。

2025-02-11 14:15:00 812

原创 redis cluster 是如何工作的

集群功能:Redis集群的关键功能是允许数据在多个Redis节点之间自动分区,从而提高性能和容错能力,支持水平扩展。设置集群:建立一个简单的Redis集群需要配置每个节点(主节点和从节点),并使用redis-cli创建集群。集群架构:每个节点通过TCP连接相互通信,使用Redis集群协议来传播集群状态、检测故障和重新平衡键空间。:Redis集群支持自动故障检测和故障转移,也可以手动执行故障转移以将从节点提升为主节点。重分区:可以使用redis-cli工具进行重分区操作,将槽从一个节点移动到另一个节点。

2025-02-11 03:30:00 608

原创 postgresql查询进程并行处理

例如,如果满足某些条件,执行查询的PostgreSQL进程将变成领导者(Leader),并启动最多max_parallel_workers_per_gather个 Worker 进程。每个Worker进程然后进行扫描处理,并将结果按顺序返回给Leader进程。Leader进程聚合从Worker进程中返回的结果。并行查询,从版本9.6开始支持,是一个使用多个进程(Worker)处理单个查询的功能。

2025-02-10 16:30:00 1431

基于java jdbc 的数据库表结构生成工具 源代码

传统软件项目交付给客户的时候一般需要提供软件所有的设计文档,其中包括数据库设计文档。 数据库设计文档生成工具有很多,但很多时候格式不一定能满足自己项目方的要求,生成后需要自己微调,比较麻烦。 本文介绍一款基于java jdbc 的数据库表结构生成工具,代码简单, 生成文档的原始模板自己可以用word 灵活调整,自主可控。

2024-12-20

dwr 入门例子(eclipse 工程)

这个eclipse 中的一个dwr 无刷新图片显示的例子,属于入门及例子,可以方便的将此例子集成到自己的项目中。

2009-06-05

java 设计模式(简体中文版)

这是一本chm 格式的java设计模式的简体中文电子书,分类清楚,附有代码

2009-06-05

空空如也

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

TA关注的人

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