自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 5月15日,心情惆怅

日记

2022-06-02 16:08:21 332

原创 数据在计算机中的存储格式,整数-补码,浮点数-IEEE754

数在计算机中的保存格式,补码的优点,IEEE754浮点数。

2022-05-14 11:23:35 592

原创 看完之后保证你对socket编程步骤胸有成竹。 C++ Socket网络编程基础详解(TCP)

本文中我会根据windows下中使用C++以及socket进行网络编程的步骤,一步步的讲解网络编程的步骤,以及这些步骤中涉及到的定义,方法。力求你看完之后对socket编程步骤胸有成竹。

2022-05-13 17:17:49 4874 3

原创 Redis_skiplist源码阅读与分析

​ 跳跃表,是一种独特的数据结构,它依靠链表,实现了快速的插入,删除。又根据它独特的设计实现了平均O(logN)复杂度下的查询。并且它的结构相对红黑树来说十分简单。

2022-05-12 15:33:01 430 1

原创 vector使用上的细节一览

本文是写给那些,会使用vector但是对vector的细节,了解不多的人。

2022-05-10 17:25:43 791

原创 内存-内存管理,详细,适合有一定基础的人复习

内存-内存管理内存管理的需求:重定位重定位的含义:​ 程序在编译链接完成后,程序中的地址是以0为参考起始地址计算出的逻辑地址,表示的是该位置与程序起始地址的相对位置关系。将程序装载到内存中后,在运行时需要对这些地址进行重新计算,根据程序起始地址和相对地址,计算出物理地址。重定位有以下三个时机:1、程序编译链接时:程序链接时,根据未来程序将要被放置的内存区域起始地址,将程序中的所有地址,加上这个起始地址。2、程序装入内存时:程序装入内存前,OS找出将要放置该程序的合适内存空间,记录该内存空间

2022-05-05 21:40:16 539

原创 Redis_SDS动态字符串源码阅读

Redis_SDS动态字符串源码阅读SDS其实就是C字符串,redis利用一些技巧,使其更快更好。那么SDS是怎么从char* 到SDS的,其实很巧妙:通过下面这三个步骤,一个void * sh,就变成了 指定类型的 SDS1.先声明几种SDS结构体的 类型,成员变量。2.通过宏定义,将sh 转变为 SDShdr 结构体的指针,并设置指针的头指向SDS结构体的头。3.在新建SDS的时候,使用结构体给sh指向的空间赋值。比起 C 字符串, SDS 具有以下优点:常数复杂度获取字符串长度。

2022-05-05 14:47:03 916

原创 redis源码阅读-dict字典

redis源码阅读-dict字典​ 字典是redis中应用非常广泛的一种抽象数据结构,字典是key-value映射关系,主要特点就是一一对应的关系。字典中的每个键都是独一无二的。​ 字典在redis中的应用有:数据库底层实现,哈希键的底层实现。dict的实现基本数据结构关于dict的数据结构一共有五个:dictEntry,dictType,dictht,dict,dictIterator.dictEntry是dict中基本元素类型。dictType则对外提供了几个自定义函数,供给使用者填充d

2022-05-05 14:42:38 1004

原创 Redis源码阅读-list双向链表

Redis源码阅读-list双向链表​ 链表提供了高效的节点重排能力,以及顺序节点访问方式,并且节点的删除,增加都很灵活方便,但是Redis使用的C语言并不内置这种数据结构,所以Redis在adlist文件中实现了list,list在Redis中的应用非常广泛,如列表键,发布与订阅,慢查询,监视器等功能都用到了链表,Redis服务器本身也是用list来保存多个客户端的状态信息。链表的实现在adlist.h,adlist.c文件中。list本体的实现​ 可以看到list中定义了三个数据类型,节点类型li

2022-05-05 14:41:32 984

原创 Redis源码阅读-内存分配模块

Redis源码阅读-内存分配模块Redis在内存分配方面,仅仅是对系统的malloc/free做了一层简单的封装,然后加上了异常处理功能和内存统计功能。其实现主要在zmalloc.c和zmalloc.h文件中。通过对比 redis3.0 和redis6.0,我也发现了一些,有趣的改进之处,不仅有根据C++11,加入了一些原子操作。更有考虑到用户,更多可能的输入后,加入的新操作。比如:6.0针对3.0,在realloc中加入了判断是否重新分配的内存为0,这一情况。这是3.0对于底层的分配器更新

2022-05-05 14:38:43 308

原创 Redis源码阅读

Redis源码阅读阅读Redis源码,参考资料:Redis 学习笔记(一)redis 数据类型和对象机制 - 归斯君 - 博客园 (cnblogs.com)redis中文文档工具: Source Insight一、Redis 简介#Redis 是(key-value)的 NoSQL 数据库,所有的 key 都是 String ,它的 value 可以是 String、hash、list、set、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等数据类

2022-05-05 14:36:04 109

空空如也

空空如也

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

TA关注的人

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