自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kafka

消息队列是一种异步通信模型,允许不同系统或模块之间通过消息进行解耦协作,核心思想是生产者发送消息,消费者异步接收消息,中间由队列负责存储与转发。本质是就是个队列,FIFO先入先出,只不过队列中存放的内容是message,从而叫消息队列。。就像一个“传送带”,生产者放数据,消费者按需取数据。

2025-07-31 21:25:39 1094

原创 MYSQL

当前读是指读取数据的最新版本,即读取数据库中最新提交的行数据。在读取时会对该记录加锁,保证其他事务不能修改这条数据。快照读是指读取数据的一个历史版本快照,不是实时最新的数据版本。快照读不会加锁,称为非阻塞读。Undo Log 是 InnoDB 存储引擎用于实现 事务回滚 和 MVCC 的核心机制。它记录了数据变更前的旧值(也叫旧版本),支持:事务回滚(事务一致性)快照读(MVCC 多版本并发控制)

2025-07-29 10:19:47 965

原创 redis

Redis 是一个,它通常被称为,也可以持久化到磁盘。它广泛应用于缓存、消息队列、排行榜、会话管理、实时统计等场景。

2025-07-27 17:42:10 656

原创 协程设计

协程库中为了实现 非阻塞 IO + 协程挂起/恢复 的能力,常用的一种技术是:hook(钩子)系统调用,即 重定义系统的阻塞 IO 函数(如。

2025-07-24 16:36:08 765

原创 网络Posix API

bind()用于将一个套接字与本地的地址(IP 和端口)进行绑定。这通常用于服务器端,明确指定监听的 IP 地址和端口号。listen()用于将一个已绑定(bind())的套接字标记为被动监听状态,使其可以等待客户端的连接请求。通常用于 TCP 服务器端,开启监听后,服务器可以接受来自客户端的连接。accept()用于从已监听的套接字中接受一个客户端的连接请求。调用后,服务器与客户端之间建立连接,返回一个新的套接字描述符用于和该客户端通信,原监听套接字继续监听其他连接。connect()用于。

2025-07-23 11:35:48 976

原创 设计模式​

工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。单例模式是一种创建型模式,其核心目的是保证一个类在系统中只有一个实例,并提供全局访问点。这种模式适用于如窗口管理器、文件系统、任务调度器、ID 生成器等场景。

2025-07-22 18:45:15 791

原创 认识bloom_filter

布隆过滤器(Bloom Filter)是一种用空间换时间的概率型数据结构,可高效判断元素是否存在于一个集合中,具有“零假阴、有假阳”(“绝对不存在”或“可能存在”)的特点本文将分为以下几部分:这是整个布隆过滤器系统的“参数配置器”,用于根据用户期望的插入元素数量和误判率,自动计算出最合适的:哈希函数个数 bit位图大小 存储用户定义的约束(如最小最大表大小、哈希次数、元素数量)自动计算最优参数组合()校验参数合法性(通过 )compute_optimal_parameters()此函数根据经典布隆过滤器理论

2025-07-22 11:34:51 304

原创 c++实现b树

每个节点最多有M-1个关键字(key)M个子树指针每个非根节点至少有个关键字(为了保证了树的紧凑性和平衡性,防止树退化成链表)所有叶子节点处于同一层关键字在节点中按递增排列,子树区间有序插入和删除后必须保持平衡(通过分裂或合并)代码实现(以3阶b树为例)

2025-07-21 19:57:26 592

原创 c++实现红黑树

通过while (z->parent && z->parent->color == RED)说明前节点的父节点是红色,需要修复,这是一个不断向上更新的过程。首先通过insert函数查找到要插入的位置,在红黑树中插入一个新值,并在插入后修复红黑树性质。对于修复红黑树的核心是解决红黑树的性质冲突,在发生插入后可能会发生以下的性质冲突。(这里我们要记住我们插入之前的红黑树它已经是红黑树了,没用性质冲突)父变黑,叔变黑,祖父变红,然后把当前指针上移一层继续修复。刚插入的节点一定是红的,不然就违背了性质5。

2025-07-21 13:48:05 340

原创 手写shared_ptr

本文解析了C++共享指针shared_ptr的简易实现,重点剖析了其核心设计机制。通过原子引用计数器实现线程安全的资源管理,在拷贝构造/赋值时递增计数,析构时递减计数,计数归零时自动释放资源。文章详细介绍了指针的拷贝/移动语义、资源释放逻辑以及常用操作符实现,展示了智能指针如何通过引用计数机制实现自动化内存管理,有效避免内存泄漏问题。

2025-07-16 16:53:00 301

空空如也

空空如也

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

TA关注的人

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