Giter Site home page Giter Site logo

redis-code's Introduction

Redis-Code

redis键值数据库源码分析

test:(测试)

  • memtest.c 内存检测
  • redis_benchmark.c 用于redis性能测试的实现。
  • redis_check_aof.c 用于更新日志检查的实现。
  • redis_check_dump.c 用于本地数据库检查的实现。
  • testhelp.c 一个C风格的小型测试框架。

struct:(结构体)

  • adlist.c 用于对list的定义,它是个双向链表结构
  • dict.c 主要对于内存中的hash进行管理
  • sds.c 用于对字符串的定义
  • sparkline.c 一个拥有sample列表的序列
  • t_hash.c hash在Server/Client中的应答操作。主要通过redisObject进行类型转换。
  • t_list.c list在Server/Client中的应答操作。主要通过redisObject进行类型转换。
  • t_set.c set在Server/Client中的应答操作。主要通过redisObject进行类型转换。
  • t_string.c string在Server/Client中的应答操作。主要通过redisObject进行类型转换。
  • t_zset.c zset在Server/Client中的应答操作。主要通过redisObject进行类型转换。
  • ziplist.c ziplist是一个类似于list的存储对象。它的原理类似于zipmap。
  • zipmap.c zipmap是一个类似于hash的存储对象。

data:(数据操作)

  • aof.c 全称为append only file,作用就是记录每次的写操作,在遇到断电等问题时可以用它来恢复数据库状态。
  • config.c 用于将配置文件redis.conf文件中的配置读取出来的属性通过程序放到server对象中。
  • db.c对于Redis内存数据库的相关操作。
  • multi.c用于事务处理操作。
  • rdb.c 对于Redis本地数据库的相关操作,默认文件是dump.rdb(通过配置文件获得),包括的操作包括保存,移除,查询等等。
  • replication.c 用于主从数据库的复制操作的实现。

tool:(工具)

  • bitops.c 位操作相关类
  • debug.c 用于调试时使用
  • endianconv.c 高低位转换,不同系统,高低位顺序不同
  • help.h 辅助于命令的提示信息
  • lzf_c.c 压缩算法系列
  • lzf_d.c 压缩算法系列
  • rand.c 用于产生随机数
  • release.c 用于发步时使用
  • sha1.c sha加密算法的实现
  • util.c 通用工具方法
  • crc64.c 循环冗余校验

event:(事件)

  • ae.c 用于Redis的事件处理,包括句柄事件和超时事件。
  • ae_epoll.c 实现了epoll系统调用的接口
  • ae_evport.c 实现了evport系统调用的接口
  • ae_kqueue.c 实现了kqueuex系统调用的接口
  • ae_select.c 实现了select系统调用的接口

baseinfo:(基本信息)

  • asciilogo,c redis的logo显示
  • version.h定有Redis的版本号

compatible:(兼容)

  • fmacros.h 兼容Mac系统下的问题
  • solarisfixes.h 兼容solary下的问题

main:(主程序)

  • redis.c redis服务端程序
  • redis_cli.c redis客户端程序

net:(网络)

  • anet.c 作为Server/Client通信的基础封装
  • networking.c 网络协议传输方法定义相关的都放在这个文件里面了。

wrapper:(封装类)

  • bio.c background I/O的意思,开启后台线程用的
  • hyperloglog.c 一种用于大数据处理的,基数统计算法
  • intset.c 整数范围内的使用set,并包含相关set操作。
  • latency.c 延迟类
  • migrate.c 命令迁移类,包括命令的还原迁移等
  • notify.c 通知类
  • object.c 用于创建和释放redisObject对象
  • pqsort.c 排序算法类
  • pubsub.c 用于订阅模式的实现,有点类似于Client广播发送的方式。
  • rio.c redis定义的一个I/O类
  • slowlog.c 一种日志类型的,记录超时查询记录
  • sort.c 排序算法类,与pqsort.c使用的场景不同
  • syncio.c 用于同步Socket和文件I/O操作。
  • zmalloc.c 关于Redis的内存分配的封装实现

others:(存放了一些我暂时还不是很清楚的类,所以没有解释了)

  • scripting.c
  • sentinel.c
  • setproctitle.c
  • valgrind.sh
  • redisassert.h

Redis中的11大优秀设计:

redis-code's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redis-code's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.