代码拉取完成,页面将自动刷新
约定
=======
模块名
---------
当文章说明一个特定的源码文件(模块)时,
通常会以全名标记出这个模块,
比如 ``dict.c`` ,或者 ``redis.h`` 。
函数名
---------
模块中的内容通常用“模块名”+“/”+“名字”的格式给出,
比如函数名 ``dict.c/dictAdd`` 指的是在 ``dict.c`` 文件中的 ``dictAdd`` 函数,
``ziplist.c/ZIP_END`` 指的是 ``ziplist.c`` 文件中的 ``ZIP_END`` 常量,
诸如此类。
如果我们正在讨论某个模块,
那么当给出一个不带模块名的名字时,
就说明这个名称位于该模块之下:
比如说,当我们讨论字典一章时,
引用 ``dict.c/dictAdd`` 就只写出 ``dictAdd`` 。
算法复杂度
--------------
在文档和源码里列出的算法复杂度,
如果没有特别说明的话,
都是最坏情况下的复杂度。
对于内存分配(\ ``malloc``\ )、
内存重分配(\ ``realloc``\ )、
以及内存移动(\ ``memmove``\ ),
如果它们处理的对象数量是单个或者固定的话,
那么将它们的复杂度视为 :math:`O(1)` ;
如果它们处理的对象是多个或者不固定的话,
那么将它们的复杂度视为 :math:`O(N)` 。
比如说, ``malloc(sizeof(struct Foo))`` 就被看作 :math:`O(1)` ,
而 ``malloc(sizeof(struct Foo) * someN)`` 则被看作是 :math:`O(N)` 。
二进制
--------
Redis 以小端的方式来处理数据,
也即是,将 ``0x12345678`` 处分割成 ``0x78`` 、 ``0x56`` 、 ``0x34`` 和 ``0x12`` 来储存,
不过为了阅读的方便,本文档仍然使用阅读起来更自然的大端方式来展示二进制数据。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。