
数据结构
文章平均质量分 91
神技圈子
八年以上对象存储、分布式文件存储开发老兵。曾在多家存储大厂(华为,腾讯等)担任过存储开发专家。LeetCode讲师、Apache Doris contributor
展开
-
一文教你如何基于c++11 实现线程池(附完整代码)
本文详细讲解了如何利用C++11来实现一个线程池原创 2024-08-28 15:55:43 · 898 阅读 · 0 评论 -
深度理解go中的Map
通过源码分析的方式深度解析go中map的原理原创 2022-12-22 10:37:52 · 709 阅读 · 1 评论 -
带你玩转多进程编程(一)
前言之前用加法器的例子一文带你轻松掌握多种范式讲解了多种范式的封装差异得到了很多童鞋的阅读。这次我再通过对进程的封装来给大家继续加深讲解下关于这几种编程范式的差异吧。结构化设计相对于pthread_create()函数,fork函数要弱一些。不过不要紧我们马上把它加强一下。#include <iostream>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>using n原创 2021-12-12 22:08:45 · 1107 阅读 · 2 评论 -
【源码讲解】Redis的字符串是如何实现的
这里写自定义目录标题前言前言为什么不用char*前言这里写自定义目录标题前言前言为什么不用char*前言字符串在日常开发中应用得比较普遍,对于Redis来说,键值对中的键是字符串,值也是字符串。比如在Redis中写入一条客户信息记录姓名、性别、爱好等。在Redis这种内存数据库中,由于字符串被广泛的应用,在设计字符串时基于以下几点来设计:1.支持丰富高效的字符串操作,比如追加、拷贝、比较等2.能保存二进制数据3.能尽可能的节省内存开销可能会有人问了,既然C语言库提供了char*这样的字符原创 2021-10-21 23:01:54 · 2376 阅读 · 2 评论 -
阿里技面之LSM-Tree如何加速随机写
面试还原技面第二轮面试题问到了LSM-Tree是如何实现加速随机写的。不是存储研发方向的童鞋们一看这个题可能会一脸懵逼,可能会疑惑什么是LSM-Tree啊,以前只听过红黑树、B+树。那么,这个数据结构又有什么特点,为什么能用来对随机写进行加速的。什么是LSM TreeLSM树(英文全程Log-Structured Merge Tree)它是一种分层、有序、面向磁盘的存储结构。先看Log Structured表示日志结构的,日志是软件或者系统打出来的,就像平时写日记一样,一页页往下写,系统写日志不会写错原创 2021-10-07 21:51:39 · 3013 阅读 · 4 评论 -
B树的插入、删除操作详解
背景在大规模数据存储中,在实现索引查询这样一个实际背景下,二叉查找树结点存储的元素数量是有限的,这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下,那么如何减少树的深度(当然是不能减少查询的数据量),一个基本的想法就是:采用多叉树结构,B树也就应运而生。B树的定义一棵m阶的B树满足下列条件∶每个结点至多有m棵子树。 除根结点外,其它每个分支...原创 2019-02-17 13:35:09 · 22897 阅读 · 5 评论