自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 常见的五种I/O模型

当某个 I/O 就绪时,进程再处理它,避免阻塞在单个 I/O 上。调用异步 I/O 操作(如 aio_read)后,内核会负责完成所有工作(包括数据拷贝),完成后通过回调函数或信号通知进程。调用 I/O 操作时,若数据未就绪,内核会立即返回一个错误码(如 EWOULDBLOCK),进程需要不断轮询检查状态,直到数据准备好为止。通过注册信号处理函数(如 SIGIO),当内核数据就绪时发送信号通知进程,进程再主动执行 I/O 操作。调用 I/O 操作时,进程会被阻塞,直到数据从内核空间拷贝到用户空间完成。

2025-04-02 13:36:01 365

原创 golang中把切片当作函数参数时的注意事项

传递切片值时,因共享底层数组,元素修改会直接影响外部,传递切片指针可强制同步结构变化,,通过显式赋值确保外部切片更新。

2025-03-31 19:08:36 203

原创 golang中切片容量的增长

在golang中,切片容量是一种动态增长机制。当切片的长度达到或超过容量时,golang会自动扩展其底层数组的容量。切片容量增长(growslice)的具体规则在不同版本是不同的。此外,在扩容后还会进一步进行。即当前长度 + 追加元素的数量。roundupsize的解释。把阈值作为基准的一部分。,来计算出最终容量。补充:字节的单位是B。

2025-03-31 15:52:36 523

原创 Redis---RDB和AOF持久化

RDB:适合备份、快速恢复和容忍少量数据丢失的场景。AOF:适合对数据安全性要求极高,允许牺牲部分性能的场景。一起使用:生产环境推荐同时开启,兼顾安全性与恢复效率。混合持久化:终极优化方案,结合 RDB 和 AOF 的优势(Redis 4.0+)。(后面应该还会补充...但是还没想好怎么条理清晰的写,所以先这样小小总结一下叭)

2025-03-27 14:01:42 269

原创 golang中map的扩容机制——增量扩容和等量扩容

每个桶最多存放 4个键值对(实际中通常是8个,这里简化举例)。此时桶0还差一个位置就满了,在这种情况下,我们继续插入键E到桶0。那么主桶就会变满,哈希表就会创建一个桶0的溢出桶,:当键值对数量超过当前桶数组容量的6.5倍时,说明桶即将被填满,此时会触发扩容,:当溢出桶过多(如频繁插入删除导致数据分散)但键值对总数较少时,桶数量不变,但会。初始状态一共有两个桶,每个桶能存放四个键值对,那么总容量为8个。,合并冗余的溢出桶,使数据分布更紧凑,从而提高查询性能。:每个桶的负载降低,减少哈希冲突,查询更快。

2025-03-26 11:46:28 340

原创 Redis——集群模式和哨兵模式

Redis集群的解决办法:直接把仓库拆成多个小仓库(分片),每个小仓库有备用仓库(副本),再雇几个管理员(集群自动管理)。想象你有一个仓库(单机Redis),用来存货物(数据)。一开始货物少,仓库够用。比如:1个主库(写数据),2个从库(读数据 + 备份)。货物分散存放:饮料放仓库A,零食放仓库B,日用品放仓库C。直接建3个小仓库(分片),每个小仓库配一个备用仓库。仓库A着火,备用仓库A立刻顶上,其他仓库照常工作。问题:仓库满了,管理员搬货慢,仓库着火就全完了。主仓库着火,管理员立刻把备用仓库变成主仓库。

2025-03-24 12:52:41 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除