深入理解redis

最近想要手写 一个redis,找到了网上的一门教程,想先跟着过一遍可长城,然后再去复现,具体大概入下

在这里插入图片描述
要理解redis我们主要从核心概念,主要流程,数据结构这三个方面去理解
下图是redis的数据结构部分
在这里插入图片描述
如图,redis1.0也就只有几千行,代码很少,主要有上图的几个包组成,redis.c ,redis-cli.c(redis-client以及redis-server) ae.c(ae事件库),anet.c(ae网络库),zmalloc.c(内存库)
在这里插入图片描述
上图是redis核心概念图
redisclient主要有四个组成部分,fd文件描述符,db是一个指向redisDBList的指针,clients是指向redisClientList的指针,最后是最后一个最核心的事件循环,是指向AeEventLoop的指针
redisServer主要也是四个,fd,db同上queryBuffer主要是用来存储查询请求的,reply是一个指向redisObjectList的指针,用来存储返回值

redis里面有一个RedisDB,是一个很大的字典,并且其中的expire表示其有过期时间,int唯一标识

redisObj的结构非常有意思,他的ptr是一个指向任意类型的指针,type表示指向对象的类型,refcount表示指向对象的引用次数
在这里插入图片描述
redis的核心流程主要分为启动流程以及请求流程两部分
关于为什么不用libevent.C是因为这个包太重了,redis只有几千行没必要再引入一个很重的包
在这里插入图片描述
redis的核心数据结构如上,RedisObj,Dict,adlist

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会说话的皮卡丘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值