写给工程师的笔记与面试指北
聚焦分布式架构、中间件原理、线上排查与高频面试题,沉淀可复用的工程实践。
Redis 使用布隆过滤器
Redis 使用布隆过滤器的意义主要在于高效地判断元素是否存在于集合中,特别适合处理大规模数据时的查重和防止重复存储。其优势包括: 节省内存:相比于传统的数据结构,布隆过滤器占用更少的内存,可以存储更多的数据。 快速查询:查询操作时间复杂度为O(k),非常高效。 适应高并发:可以在高并发场景下快速判
Redis为什么快
Redis为什么快 Redis 之所以运行比较快的原因有以下几个: 数据存储在内存中:Redis 的数据存储在内存中,而内存的读写速度远远快于硬盘。这使得 Redis 能够实现非常快速的读写操作。 单线程处理请求:Redis 是单线程的,因此可以避免线程切换和锁竞争等问题,提高了 CPU 的利用率和
Redis 不同模式下的分布式锁
不同模式下的保障机制 2.1 单机模式 简单直接: 在单机Redis上直接执行SET命令,实现加锁和解锁。 风险: Redis单机故障会导致锁无法释放,造成死锁。 2.2 主从模式 数据冗余: 主节点写入数据,从节点同步,提高数据可靠性。 锁失效风险: 如果主节点故障,在切换主节点的过程中,可能出现
Redis ZSET 排行榜相关命令
通过 zadd 命令添加了 6 个元素到 cus_order_set 中 ZADD cus_order_set 112.0 user1 100.0 user2 123.0 user3 100.0 user4 33.0 user5 993.0 user6 查看cus_order_set的数量 ZCA
Redis Cluster 部分 master 下线仍可用
在 Redis Cluster 模式下,默认情况下参数 cluster-require-full-coverage 设置为 yes。这意味着 Redis 集群要求所有的哈希槽(16384 个 slot)都有主节点进行映射,如果有任何 slot 未被分配到可用的主节点,整个集群将被标记为不可用(una
Redis Sentinel 故障转移后主节点回归
1. 确认原主节点已修复并启动 确保原主节点的服务已修复,并能够正常启动。 执行以下命令验证: redis-cli -h <original-master-host> -p <original-master-port> ping 如果返回 PONG,说明服务已正常运行。 2. 清空原主节点的数据
PostgreSQL / JDBC 存储过程
让我来解释PostgreSQL中存储过程(PROCEDURE)和函数(FUNCTION)的主要区别: 返回值 - FUNCTION:必须有返回值(RETURNS 子句是必需的) - PROCEDURE:不能有返回值,但可以通过 OUT 或 INOUT 参数返回数据 事务处理 - PROCEDURE:
pgjdbc与PostgreSQL数据库的通信机制
pgjdbc与PostgreSQL数据库的通信机制 PostgreSQL JDBC驱动(pgjdbc)与PostgreSQL数据库服务器之间的通信采用基于TCP/IP的socket连接,使用的是PostgreSQL专有的前端/后端协议。从提供的代码上下文看,pgjdbc实现的是该协议的v3版本(Qu
PostgreSQL 的 IO 方式
pgjdbc 为什么使用 BIO 而不是 NIO: 历史原因: - pgjdbc 是一个较早的 JDBC 驱动实现,最初设计时 Java NIO 还未出现 - 为了保持向后兼容性和稳定性,继续使用了 BIO 实现 协议特点: - PostgreSQL 协议是一个基于消息的协议,每个消息都有明确的边界
PostgreSQL通信机制与JDBC交互流程
PostgreSQL通信机制与JDBC交互流程 是的,PostgreSQL确实使用socket通信,但通信过程比简单的"发送SQL并读取结果"要复杂得多。让我详细解释这个过程: 1. 基础通信机制:Socket PostgreSQL JDBC驱动确实使用TCP/IP socket作为与数据库服务器通