Redis-可以实现哪些功能
缓存 Redis 可以作为缓存系统,将热点数据存储在内存中,提高读写性能和响应速度,减少对后端数据存储的压力。 消息队列 Redis 的发布订阅功能和 List 数据结构可以实现消息队列的功能,实现异步处理任务、解耦系统组件之间的依赖关系等。 Redis 消息队列示例 使用 Redisson 的 R
PostgreSQL JDBC连接的完整生命周期
PostgreSQL JDBC连接的完整生命周期 让我通过pgjdbc源码,详细讲解一个数据库连接从创建到销毁的完整生命周期流程。 1. 连接创建阶段 入口点:Driver类 首先,当你执行DriverManager.getConnection(url, props)时,JVM会找到已注册的JDBC
Spring Boot 加载与 Bean 加载过程
Spring Boot 加载与 Bean 加载过程 1. 引言 Spring Boot 的核心在于约定大于配置,它通过自动配置让开发者可以快速、简便地搭建项目。在底层,Spring Boot 仍然依赖于 Spring Framework 的 ApplicationContext(常见如 Annota
MySQL-innodb存储引擎为什么采用B+树
为什么 InnoDB 使用 B+树 高效的磁盘 I/O 操作 - B+树的非叶子节点不存储数据,只存储索引值。这使得每个节点可以容纳更多的索引值,从而降低树的高度。 - B+树的叶子节点通过链表相连,方便范围查询,进一步减少磁盘访问次数。 适合范围查询 - B+树的叶子节点按顺序存储所有关键字,并且
Redis 多节点模式详解
以下是一篇将「Redis三种模式(主从、哨兵、Cluster)在多节点部署、故障与恢复流程、数据一致性、网络分区等问题」综合整理的详细说明文章,涵盖从基础概念到典型故障场景以及常见的解决思路。 Redis 多节点模式详解 Redis 在实际生产环境中常用的多节点部署模式主要包括: 主从模式(Mast
Kafka如何保证消息的顺序性
Kafka如何保证消息的顺序性 核心原理 Kafka中消息顺序性依赖于其分区(Partition)内顺序性。 每个分区的消息都是按照先后顺序排列的,如上图一样。 在单个Kafka分区中,消息的顺序性得到了严格的保证。新产生的消息总是附加到分区日志的末端,消费者按照消息在分区中的物理顺序进行消费。如下
Elasticsearch-实现原理
一、Elasticsearch 与传统数据库对比 1.1 关键点概览 文档模型(Document-Oriented) - Elasticsearch 视每条记录为一个文档(JSON 格式)。 - 一个索引(Index)下可包含多个文档,索引底层又被分为一个或多个分片(Shard),每个分片是一个独立
技术-数据结构
二叉树 特点 节点结构: - 每个节点最多有两个子节点,分别称为左子节点和右子节点。 层次关系: - 树的层次从根节点开始,根节点位于第 1 层,子节点位于其父节点的下一层。 - 每一层的节点数最多为 $$2^{\text{层号}-1}$$(例如,第 1 层最多有 1 个节点,第 2 层最多有 2
限流的几种方式
限流的几种方式 计数器算法 :将时间周期划分为固定大小的窗口(如每分钟、每小时),并在每个窗口内统计请求的数量。当窗口内的请求数达到预设的阈值时,后续请求将被限制。时间窗口结束后,计数器清零。 优点:实现简单,易于理解。 缺点:在窗口切换时刻可能会有突刺流量问题,即在窗口结束时会有短暂的大量请求被允
分布式锁的方案总结
通常情况下,我们一般会选择基于 Redis 或者 ZooKeeper 实现分布式锁,Redis 用的要更多一点,我这里也先以 Redis 为例介绍分布式锁的实现。 基于 Redis 实现分布式锁 如何基于 Redis 实现一个最简易的分布式锁? 不论是本地锁还是分布式锁,核心都在于“互斥”。 在 R