![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构&算法
文章平均质量分 77
baseoncpp
轻松写代码,快乐过人生。
展开
-
Redis7.0代码分析总结之:底层数据结构listpack实现原理
文章目录一、前言二、实现原理2.1 、内存结构2.2、 数据存储编码方案2.3、 backlen长度编码方案三、主要API介绍3.1、插入、更新、删除3.2、查找、遍历四、Redis内部应用五、总结 一、前言 listpack压缩列表。作为ziplist的替代品,从2017年引入Redis后,到redis7.0已经完全取代ziplist 作为redis底层存储数据结构之一。 &原创 2022-03-21 16:21:45 · 1968 阅读 · 2 评论 -
C语言实现int转换字符串的一种实现
在技术人员面试的时候,经常会被要求实现标准库的一些函数比如strlen,strcpy,itoa,atoi等等。本文就简单的聊聊一次面试的笔试题,作为一次失败面试的记录。 由于预先不知道整数的位数,一般在转字符串的时候,都是通过从个位开始往高位逐个转换。这样就会在转换完成以后,需要对生成的字符串进行逆序,才能达到最终结果。 本方案采取了一个小技巧,通过指针运算,字符拷贝(当然也可以直接通原创 2017-05-28 08:38:46 · 18358 阅读 · 0 评论 -
跟着Redis学编程系列:把一个字符串转换为有符号长整型
前言 作为C语言基础,在面试的时候,很多时候在都会被要求实现数值到字符串、或者字符串到数值的转换函数。虽然难度不大,但是很容易在一些细节上出现纰漏。刚好最近在深度分析Redis7.0源代码。闲暇之余,顺带把这部分代码摘录出来,进行分析、注解。 作为一个学习记录的同时也方便后来者快速了解Redis内部是如何实现的。日后面试也许能用的上。 Redis实现方式 代码片段注释 int string2ll(const char *s, size_t slen, long long *value) { con原创 2022-03-17 00:21:22 · 1536 阅读 · 0 评论