砚知集 知识改变命运

对于io分为哪几个类型

1. 阻塞式 I/O (Blocking I/O) 这是最简单、最常见的模型。 核心流程: 应用程序发起一个 I/O 系统调用(如read)。 内核开始准备数据(例如,等待网络数据包到达)。 在数据准备好之前,应用程序的进程 / 线程会被挂起(Blocked),进入睡眠状态,不消耗 CPU 资源。

Administrator Administrator 发布于 2025-09-22

redis使用String和Hash时候应该注意什么?

在使用 Redis 的 String 和 Hash 数据结构时,需要注意不同的特性和使用场景,以下是详细说明: 一、使用 Redis String 数据结构的注意事项及原因 String 是 Redis 最基础的数据结构,可存储字符串、数字、二进制数据(如图片),最大容量为 512MB。 1. 避免

Administrator Administrator 发布于 2025-09-16

怎么实现亿万级别hashmap安全快速的扩容

在处理亿级别的 HashMap 扩容时,核心挑战是在保证线程安全的同时,最大限度减少对业务的阻塞时间。由于数据量巨大(亿级别),传统的一次性扩容方式会导致长时间卡顿,甚至引发系统超时或崩溃。以下是一套安全且高效的扩容方案,结合了增量扩容、并发控制和负载均衡等策略: 一、核心问题分析 一次性扩容的风险

Administrator Administrator 发布于 2025-09-16

Redis 过期键重复设置的底层逻辑:从现象到源码的深度解析

在 Redis 日常使用中,我们常会遇到这样的场景:给一个键设置了过期时间后,又在过期前重复设置该键(且不指定过期时间)。这种操作会产生什么效果?是保留原过期时间,还是清除过期时间?本文将从实际现象出发,结合 Redis 源码,彻底揭开这一行为的底层逻辑。 一、直观现象:重复设置键会清除过期时间 先

Administrator Administrator 发布于 2025-09-15

pgbouncer 下对于pgsql会话依赖的-currval()函数

pgbouncer 作为 PostgreSQL 的连接池代理,无法正确处理 currval() 函数,核心原因是 currval() 依赖数据库会话(session)级别的状态,而连接池的 “连接复用” 机制会破坏这种会话关联性。 1. currval() 的本质:依赖会话级序列状态 currval

Administrator Administrator 发布于 2025-09-12

pgbouncer连接复用破坏session场景拓展

pgbouncer 作为连接池代理,其 “连接复用” 机制会打破应用逻辑会话与数据库物理连接的绑定关系,因此所有依赖 数据库会话(session)级状态 的操作都可能出现问题。除了 currval(),以下是常见的类似问题场景: 1. 会话级临时表(CREATE TEMPORARY TABLE) 问

Administrator Administrator 发布于 2025-09-12