1 Star 6 Fork 15

Leo、 / Redis源码

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

该仓库为阅读Redis 5.0.3源码并添加注释用以云备份。

基础数据结构

  • sds C样式的动态字符串封装
  • adlist 双向链表
  • dict 字典(由hash表实现)
    • dictScan操作中的反转二进制算法,可以提供一种极为均衡的遍历方式
  • intset 整数集合
  • ziplist 由数组封装的抽象数据结构,一个压缩list
  • listpack 详细说明 由数组封装的抽象数据结构,ziplist的改良版
  • quicklist 由双向链表与ziplist组合抽象出的数据结构,ziplist做为节点中存储数据的区域
  • zipmap 由数组封装的抽象数据结构,内部采用key-value的形式存储
  • zskiplist 跳表,由单向链表封装的抽象数据结构,对每个节点均加入一个跳跃表(数组)的内存空间进而使得所有操作表现良好;以空间换时间的经典实现,良好的处理节点上限一般为2^64个
  • raxTree 由数据封装的抽象数据结构,一个基数树;与普通基数树不同的是合并不具有值的节点

数据结构示意图

srs C样式的动态字符串封装 1 srs C样式的动态字符串封装 2 srs C样式的动态字符串封装 3 srs C样式的动态字符串封装 4 adlist 双向链表 intset 整数集合 1 intset 整数集合 2 ziplist 一个压缩list 1 ziplist 一个压缩list 2 ziplist 一个压缩list 3 listpack ziplist的改良版 quicklist 双向链表与ziplist组合 zipmap 数组key-value的形式存储 zskiplist 跳表 raxTree 基数树 1 raxTree 基数树 2 raxTree 基数树 3 raxTree 基数树 4

Copyright (c) 2006-2015, Salvatore Sanfilippo All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Redis nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

记录个人阅读Redis5.0.3源码的注释代码 展开 收起
C
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/xin_chong/redis_source_code.git
git@gitee.com:xin_chong/redis_source_code.git
xin_chong
redis_source_code
Redis源码
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891