自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis 压缩列表

压缩列表的构成:压缩列表是连续内存块组成的顺序数据结构,包含任意多个节点,每个节点保存一个数组或一个整数值。如下图为压缩列表组成部分:zlbytes:压缩列表总长度zltail:压缩列表起始地址和尾结点的偏移量差值zllen:压缩列表的节点数zlend:标记压缩列表的末端压缩列表节点(entry)的构成:previous_entry_length:记录前一个节点的长度encodeding:记录content属性所保存数据的类型及长度content:保存节点的值连锁更新当前一节点长

2022-01-12 16:04:16 223

原创 Redis整数集合

如下为intset.h/intset结构,表示一个整数集合:typedef struct intset{ uint32_t encoding;//编码方式 uint32_t length;//集合包含元素数量 int8_t contens[];//保存元素的数组,按值的大小从大到小有序排列,且不包含重复项}intset;若添加的数据大于现encoding值时,集合会进行升级操作。1.控制数组空间,并为新元素分配空间2.原数据类型转换,并放置在正确位置3.添加新元素至数组...

2022-01-11 17:50:47 247

原创 Redis跳跃表结构

如上图为跳跃表的结构。由redis.h/zskiplistNode和redis.h/zskiplist两个结构定义。zskiplist结构保存跳跃表节点的相关信息,zskiplistNode表示跳跃表节点。zskiplist结构定义如下:typedef struct zskiplist{ structz skiplistNode *header,tail;//表头、表尾节点 unsigned long length;//表中节点数量(不计表头节点) int level;//节点的最大层数(不计表.

2022-01-10 17:50:18 284

原创 Redis字典实现

如下图为普通状态下字典的结构dicth.h/dict结构如下typedef struct dict{ dictType *type;//类型特定函数 void *privtata;//私有数据 dictht ht[2];//哈希表 int trehashidx;//rehash标志}dicth.dictht结构如下typedef struct dictht{ dictEntry **table;//哈希表数组 unsigned long size;//哈希表大小 unsigned

2022-01-07 15:35:47 380

原创 Redis的链表结构

Redis的链表结构如上图所示,Redis链表由一个list和任意个listNode结构组成;adlist.h/listNode结构:typedef struct listNode{ //前指针 struct listNode *prev; //后指针 struct listNode *next; void *value;}ListNode;adlist.h/listNode结构:typedef struct list{ listNode *head;//表头 listNode

2021-12-28 09:08:28 589

原创 Redis中的SDS结构

Redis中的SDS结构如下为sds的数据结构,使用len存储字符长度,使得strlen命令时间复杂度为O(1);对SDS字符串进行修改时,会先进行剩余空间是否足够进行相关修改操作的判断,若不足则进行扩容,杜绝缓冲区溢出;struct sdshdr{ int len;//存储字符的长度 int free;//剩余空间长度 char buf[];//内容存储的字符串}为减少内存重分配次数,内部使用了空间与分配、惰性空间释放的方法...

2021-12-27 17:28:47 423

原创 Python列表(list)使用for循环和list.remove删除列表元素的坑

Python列表(list)使用for循环和list.remove删除列表元素Talk is cheap show me the codey=[1,1,2,1,2,1,2,1,1,1,2]index = 0for i in y: if i==1: print() y.remove(i) print(index,":","List_2=",y," i:",i) index += 1print("List_2=",y)```首先我们先看一下

2021-09-13 15:55:34 799

原创 Python open函数文件名格式的坑

错误代码如下:file_title_time = time.strftime('%Y%m%d-%H:%M:%S',time.localtime(time.time()))# print("D:/process_monitor_" + p.name() + '_' + file_title_time+ '_'+str(pid) + ".csv")with open("D:/process_monitor_" + p.name() + '_'+ file_title_time+ '_' + str(pid

2021-07-28 18:10:05 619

原创 计算机网络

网络协议:网络中进行数据交换而建立的规则、标准或约定。协议规定了通信实体之间交换信息的格式、意义、顺序以及针对收到信息或发生的事件采取的“动作”(action )。协议的三要素※语法※语义※时序...

2021-06-27 15:37:00 101

空空如也

空空如也

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

TA关注的人

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