Giter Club home page Giter Club logo

annotated_redis_source's Introduction

关于

本项目是注释版的 Redis 2.6 源码。

原始源码来自: https://github.com/antirez/redis

基本上所有单机 Redis 模块都已经注释了:只有 SENTINEL 模块、REPLICATION 模块、 CLUSTER 模块和一些小的辅助模块没有注释。

除了一些空格/空行/缩进方面的调整外,没有对原始代码进行其他改动。

这份注释源码是《Redis 设计与实现》一书的附属项目,可以到 www.redisbook.com 阅读本书。

have fun!

huangz
2013.3.5

另有 Redis 3.0 源码注释提供: https://github.com/huangz1990/redis-3.0-annotated

annotated_redis_source's People

Contributors

antirez avatar anydot avatar aquageek avatar bpot avatar catwell avatar charsyam avatar d0k avatar djanowski avatar erikdubbelboer avatar florean avatar garyelephant avatar hampus avatar huangzworks avatar janoberst avatar jokea avatar jonahharris avatar jzawodn avatar kmerenkov avatar lucsky avatar melo avatar miaout17 avatar mrb avatar pietern avatar saj avatar thepicard avatar tizoc avatar tj avatar tmm1 avatar tnm avatar tobstarr avatar

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

annotated_redis_source's Issues

sds.c这个函数void sdsfree(sds s)的注释有点疑问

/*

  • 释放 sds 所对应的 sdshdr 结构的内存
  • 给定 sds 必须为 NULL
    *
  • T = O(N)
    */

void sdsfree(sds s) {
if (s == NULL) return;
zfree(s-sizeof(struct sdshdr));
}
这里的 “给定 sds 必须为 NULL” 是不是笔误写错了

跳跃表那一章的ZADD, 例子似乎有一点误导

这里似乎会产生一个误解,ZADD 一开始都是使用的ziplist,只有满足 zset_max_ziplist_entries 或是 zset_max_ziplist_value 时才会把ziplist转换成skiplist。

我看到后面的部分书中也解释了这个问题。
但是在我读到跳跃表着一个章节,调试源代码的时候,被这个例子纠结了不少时间。我感觉标注一下会好很多。

我评论了一下,但是似乎不会收到回复,所以我就在这里new issue了 : )

Redis 编译环境

你好,请问一下,要用什么来搭建redis的编译环境?我想进行调试,跟踪代码,我的系统是mac。谢谢!!!

base分支.

建议把添加注视前的代码checkout到一个分支(base). 方便对比, 看了看 好像是从bf0852e5ed56dfbe32e19d926f8d5cc76f750cc8 后开始修改的.
c5e913e 注释 t_string.c/getGenericCommand 函数
7060e07 注释 t_string.c/setGenericCommand 函数
bf0852e Merge pull request #807 from bmcmanus/issue-804
ab2924c Memory leak fixed: release client's bpop->keys dictionary.
还有,从unstable开发,不是一个好的选择.

Insecure Temporary File

https://github.com/huangz1990/annotated_redis_source/blob/67758fdfe196d96ddc8a83784fa48f22226a3818/deps/lua/src/loslib.c#L60

https://github.com/huangz1990/redis-3.0-annotated/blob/8e60a75884e75503fb8be1a322406f21fb455f67/deps/lua/src/loslib.c#L60

Good afternoon.
I noticed in your code the functions using tmpnam. the problem with this function is that it only determines the availability of the filename at the time it is called.
those. when you start working with this name, you are not sure about the absence of a file with this name.
if it is important then you need to use mkstemp or mkdtemp.

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.