标签: 分布式

7 篇文章

Redis 的内存用完了会发生什么?
当Redis内存用完后,会发生以下几种情况: 一、写入操作失败 Redis达到最大内存限制后,默认行为是拒绝新的写入操作并返回错误。此时SET、HSET等写命令会报错"OOM command not allowed when used memory > 'maxmemory'",但读操作和删除操作仍可正常执行。这是为了保护数据一致性,防止数据…
Redis 集群之间是如何复制的?
Redis集群通过主从复制机制实现数据同步,核心包括全量同步和增量同步两种模式,采用异步复制方式保证最终一致性。 一、主从复制的基本架构 Redis集群采用一主多从的架构,每个主节点(Master)可以拥有多个从节点(Slave)。主节点负责处理写操作,从节点通过复制机制同步主节点数据,实现数据备份和读写分离。从节点默认只读,通过配置replica…
SpringBoot整合Kafka实战指南
Apache Kafka是一个分布式流处理平台,广泛用于构建实时数据管道、日志聚合系统和事件溯源架构。Spring Boot提供了对Kafka的良好集成支持,使得开发者可以非常便捷地在项目中使用Kafka。本文将手把手教你如何在Spring Boot项目中集成Kafka,包括生产者(Producer)和消费者(Consumer)的实现,并提供完整的…
SpringBoot多数据源配置与动态切换技术详解
一、多数据源应用场景 在实际开发中,SpringBoot应用连接多个数据库的需求日益普遍,主要应用于以下场景: 读写分离架构:主库负责写入,从库负责查询,QPS可提升3-5倍 业务分库:订单库、用户库分离,降低单库压力 多租户系统:每个租户独立数据库,实现数据隔离 异构数据库:MySQL + MongoDB混合使用,满足不同业务需求 二、核心实现方…
SpringBoot整合RabbitMQ:动态创建队列与动态监听实战指南
一、引言 在分布式系统架构中,消息队列作为异步通信的核心组件,承担着系统解耦、流量削峰、异步处理等重要职责。RabbitMQ作为业界广泛使用的开源消息中间件,通过SpringBoot集成可以快速实现消息队列的创建与管理。然而,传统的静态配置方式存在灵活性不足的问题,当需要根据业务需求动态创建队列或动态调整监听策略时,静态配置就显得力不从心。 本文将…
Redisson分布式锁为什么要用lua脚本实现,而不用事务?
Redisson使用Lua脚本实现分布式锁主要是为了解决原子性、网络开销和事务局限性三个核心问题。下面详细解释: 1. 原子性保证 这是最主要的原因。Lua脚本在Redis中执行时是原子性的,整个脚本在执行过程中不会被其他命令打断。 -- Redisson的加锁Lua脚本示例 if (redis.call('exists', KEYS[1]…
java中如何使用redis实现分布式锁
在Java中使用Redis实现分布式锁主要有两种方式:一种是使用Redisson客户端库,另一种是使用Jedis/Lettuce配合Lua脚本。下面分别介绍这两种实现方式: 1. 使用Redisson实现(推荐) Redisson是一个成熟的Redis客户端,内置了分布式锁的实现。 1.1 添加依赖 <dependency> <g…