因为面试被问到了,C++的新特性,但从未归纳过,故将整理c++11,c++17,c++20的常见特性,并用例子实现一遍。加油!!! 1.nullptr C++用nullptr代替NULL,原因NULL在C++中会被定义为0或(void*)0,取决于编译器。 C++ 不允许直接将 void * 隐式转 Read More
posted @ 2021-09-08 22:25 Ldler Views(272) Comments(0) Diggs(0) Edit
简单动态字符串(SDS),双端链表,字典,压缩列表,整数集合等数据结构。 构成字符串对象,列表对象,哈希对象,集合对象,有序集合对象五种类型。 针对不同的使用场景设置不同的数据结构实现,从而优化使用效率。 redis对象系统基于引用技术的内存回收机制和对象共享机制。 还有维护一个lru值,空转时长较 Read More
posted @ 2021-05-08 15:14 Ldler Views(43) Comments(0) Diggs(0) Edit
压缩列表是列表键和哈希键的底层实现之一。 只包含少量列表项,且都为小整数或者短字符串那么redis会将压缩列表作为列表键使用 压缩列表的构成 zlbytes: uint32_t类型占四个字节,记录整个压缩列表占用的内存字节数。在对压缩列表内存重分配或者计算zlend的位置时使用。 zltail:ui Read More
posted @ 2021-05-08 15:11 Ldler Views(96) Comments(0) Diggs(0) Edit
当一个集合中数量不多且只包含整数元素,redis则用整数集合来作为集合的底层实现。 typedef struct intset{ //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; //保存元素的数组 int8_t contents[]; } Read More
posted @ 2021-05-08 15:09 Ldler Views(56) Comments(0) Diggs(0) Edit
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 查找效率平均O(logn),最坏O(N),redis有序集合键的底层实现之一。 zskiplist包含四个重要成员变量 header:指向跳跃表的表头节点。 tail:指向跳跃表 Read More
posted @ 2021-05-08 15:08 Ldler Views(69) Comments(0) Diggs(0) Edit
字典,用于保存键值对的抽象数据结构。 每个键都是独一无二的。 Redis的数据库就是使用字典作为底层实现的。 还是哈希键的底层实现之一,当一个hash键包含的键值对比较多,又或者键值对中的元素都是比较长的字符串时,Redis就用字典作为哈希键的底层实现 哈希表 typedef struct dict Read More
posted @ 2021-05-08 15:06 Ldler Views(56) Comments(0) Diggs(0) Edit
简单动态字符串(SDS) struct sdshdr { //记录buf数组中已使用字节的数量 //等于SDS所保存字符串的长度 int len; //记录buf数组中未使用字节的数量 int free; //字节数组,用于保存字符串 char buf[]; } 一般会留最后一个字节来保存'\0', Read More
posted @ 2021-05-08 14:56 Ldler Views(54) Comments(0) Diggs(0) Edit
守护进程简介 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以 d 结尾的名字。 ◼ 守护进程具备下列特征: 1.生命周 Read More
posted @ 2021-02-22 18:03 Ldler Views(907) Comments(0) Diggs(0) Edit
DNS 域名系统 DNS服务作用 负责解析域名 将域名解析为IP地址 什么是域名 根 顶级域名 com,edu,net,cn... 二级域名 jsuacm,inhe www.jsuacm.cn mail.jsuacm.cn ftp.jsuacm.cn 这开头的www,mail,ftp是服务器的名字, Read More
posted @ 2021-01-27 14:16 Ldler Views(130) Comments(0) Diggs(0) Edit
第一次字节面试,也是第一次面试,一面二面一起,一个半小时,挂了,故总结。 第一个面试官一开始就直接问数据结构与算法的东西了 LCT是什么,这个确实不知道。 二叉树的前序遍历非递归版本,求第k大的数。 第一个题自己知道用栈实现,但没去写,第二个题也不知道他是什么形式的,也没去写,可能就是第一次面试比较 Read More
posted @ 2021-01-20 10:36 Ldler Views(157) Comments(0) Diggs(0) Edit