- 博客(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 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
原创 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 的数据库表结构生成工具 源代码
2024-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人