Redis原理之数据结构
Redis原理之数据结构1.1 Redis数据结构-动态字符串我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。
不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:获取字符串长度的需要通过运算非二进制安全不可修改Redis构建了一种新的字符串结构,称为简单动态字符串(Simple Dynamic String),简称SDS。例如,我们执行命令:
那么Redis将在底层创建两个SDS,其中一个是包含“name”的SDS,另一个是包含“虎哥”的SDS。
Redis是C语言实现的,其中SDS是一个结构体,源码如下:
例如,一个包含字符串“name”的sds结构如下:
SDS之所以叫做动态字符串,是因为它具备动态扩容的能力,例如一个内容为“hi”的SDS:
假如我们要给SDS追加一段字符串“,Amy”,这里首先会申请新内存空间:
如果新字符串小于1M,则新空间为扩展后字符串长度的两倍+1;
如果新字符串大于1M,则新空间为扩展后字符串长度+1M+1。称为内存预分配。
1.2 Re ...
秋招第一面
秋招第一个面试是诗悦给的晚上散步的时候看见一封邮件,第一眼以为是感谢信,点进去一看是约面了,激动的我都快跳起来了,从九月初开始准备秋招,二十天了,一直没面试,只有做不完的海测和海笔,好不容易有个小天才到了简历复筛环节,结果还是挂了,真的挺郁郁的。
累计投递了150+,就一家约面了,很大的缓解了焦虑,希望后续能有更多的面试吧。🐀秋招也想拿offer。
每天就是投简历、测评、笔试,真的很焦虑,明明就一件事,还是做不好,每天看见牛客oc这家,哪家又发offer了,今天终于到我约面了,虽然才迈出第一步,我相信会越来越好的。
附一张秋招统计记录图!
-
建站说明
建站说明 欢迎大家关注,第一次建立博客系统,有诸多不足的地方希望多多包含。
关于博客 建站记录学习过程和一些技术文档,记录在本站的都是作者个人学习所获,如有问题,还望指出。本站不记录水贴,内容主要是两部分,技术文章和作者的成长感悟。期待我的第一篇文章吧!!!
技术说明 建站技术采用Hexo+Github 托管,可自行Google。
特别感谢 感谢学习计算机以来对我帮助的各位大佬,列出一些大佬的网名,排名不论先后,如果看见自己,不要谦虚!!!也感谢其他伙伴的帮助,没列出的请见谅,可留言补充!!!
狐言,墨白,贺兰,杀阿,smx,wj,黑马,图灵学院,mmz,yql,轩辕,彼人…
特别感谢狐言老兄!!!