自定义博客皮肤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 Source Code Read Log( 6. dict details)

介绍 dict 内部实现机制,具体什么是hashmap,这里不介绍。 Redis 内部的 dict 桶采用的是向量,然后拉链采用的是 单链表。关键是桶个数bucket_size:size 必须是2的次方数。index 获取方式不是取模,而是取低位即按位与 sizemask(size - 1) 之后,作为 bucket_index。 hash 算法为 SipHash, 底层实际都是对 stri...

2020-03-31 01:15:55 126

原创 Redis Source Code Read Log( 5. 核心数据结构)

Redis 的核心功能数据结构主要有如下几个: redisServer redisDb redisCommand redisObject: robj dict client 1. redisServer 针对核心的功能, redisServer 主要的数据结构。 第一个是 el, aeEventLoop的引用。架构层面,需要将eventloop进行存储,后续注册fileEve...

2020-03-30 16:50:56 337

原创 Redis Source Code Read Log( 4. fork issuse)

Part 1: 标准I/O的缓冲作用 标准I/O带缓冲,那么作用是什么呢?简单而言,就是为了提高效率,防止反复系统调用,导致的性能问题。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <unistd.h> #...

2020-03-29 16:52:57 113

原创 面试机考算法题

已知有N框苹果,每框有N(i)个苹果(i为每个框的索引号码)。假设你每小时吃K个苹果,并且,一个小时内你只能吃同一框苹果,假设K > N(i), 那么,这个小时内,该框苹果会被吃完,并且,你也不会去吃下一筐。 现在在H个小时以内,要求你吃完所有的苹果,求吃苹果的最小速度K。 注意, N > 0, N(i) > 0, K > 0, H > 0. 如果吃不完,那么请返...

2020-03-28 16:27:56 259

原创 Redis Source Code Read Log( 3. aeEventLoop Arch EPOLL LT mode arch)

Part 1: Basic Structure aeTimeEvent 双链表结构 aeFileEvent & aeFiredEvent aeApiState aeEventLoop Part 2: eventLoop Arch aeMain main data flow: 1.当Redis Sever启动之后,监听socket,开始accept客...

2020-03-28 15:59:09 193

原创 Redis Source Code Read Log (2. 父子进程继承了什么 参考《Unix环境高级编程第三版》)

Part 1: fork 介绍 #include <unistd.h> pid_t fork(void); 由 fork 创建的子进程,该函数被调用一次,但是会返回两个返回值。 第一个返回值:子进程的pid。返回给父进程,即当前调用fork的进程。 第二个返回值:0,返回给子进程。即新产生的进程。 为什么需要将子进程的pid返回给父进程? 因为:一个父进程可能有很多子进程...

2020-03-27 22:47:48 120

原创 较大整数乘积:算法题

// jobInterView.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include <iostream> #include <vector> #include <string> #include <algorithm> #include <ctime>...

2020-03-26 02:46:59 146

原创 Redis Source Code Read Log( 1. bio, Backgound I/O)

Redis 启动后,main thread 中启动三个bio线程,分别执行三种任务: #define BIO_CLOSE_FILE 0 /* Deferred close(2) syscall. */ #define BIO_AOF_FSYNC 1 /* Deferred AOF fsync. */ #define BIO_LAZY_FREE 2 /* Deferred o...

2020-03-20 06:38:54 202

原创 非阻塞 socket + epoll 边缘触发模式下的 TCP server 端单线程简单模型

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/epoll.h> #include <arpa/inet.h> #include ...

2020-03-17 13:39:32 101

空空如也

空空如也

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

TA关注的人

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