<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ? ? ? ?分析了將近1個月的Redis源代碼了,也到了最核心的,最貼近系統開始的地方了,我把他取名為main目錄,里面就包括了2個重要的文件,redis-cli和redis文件,1個代表的是客戶端的執行文件,1個代表的是服務端的文件,這2個也是整個系統最最核心的模塊,所以我把他歸結到main主程序模塊了,主程序模塊也是我學習Redis最后的一個模塊,在這里一定能看到我之前看到的所有各個功能模塊的痕跡。由于主模塊中的代碼量比較多,所以我選擇了分批次的學習,所以今天我主要的是把里面的API方法給拉了出來,把redis-cli中的東西,做了個解剖。 ? ? ?剛開始以為redis-cli.是redis-client的縮寫,但其實他的意思: ~~~ /* Redis CLI (command line interface) * 命令行接口 ~~~ 所以說,他是直接響應操作redis下的黑窗口的命令的。在這個文件中,定義了redis的上下文,配置信息結構體和一堆的API,就大致這些了: ~~~ /* redis上下文 */ static redisContext *context; /* Redis配置結構體 */ static struct config ~~~ 主要是后面的各種API,先不急著看方法,因為方法真的是太多了,首先我們學會分類:下面是我做的一個圖; ![](https://box.kancloud.cn/2016-08-24_57bd74f78aa93.jpg) 模塊還是挺多的吧上面都是英文的表現形式,在后續的分析中,我會逐個模塊的做學習,比如第一個Utility functions就是通用方法的意思啦,還有后面的什么什么方法等。下面在放出redis-cli中的所有API: ~~~ /* Utility functions 通用方法 */ static long long ustime(void) static long long mstime(void) static void cliRefreshPrompt(void) static sds cliVersion(void) static void cliInitHelp(void) static void cliOutputCommandHelp(struct commandHelp *help, int group) static void cliOutputGenericHelp(void) static void cliOutputHelp(int argc, char **argv) static void completionCallback(const char *buf, linenoiseCompletions *lc) static int cliAuth() static int cliSelect() static int cliConnect(int force) static void cliPrintContextError(void) static sds cliFormatReplyTTY(redisReply *r, char *prefix) static sds cliFormatReplyRaw(redisReply *r) static sds cliFormatReplyCSV(redisReply *r) static int cliReadReply(int output_raw_strings) static int cliSendCommand(int argc, char **argv, int repeat) static redisReply *reconnectingInfo(void) /* User interface 用戶接口*/ static int parseOptions(int argc, char **argv) static sds readArgFromStdin(void) static void usage(void) static char **convertToSds(int count, char**args) static void repl(void) static int noninteractive(int argc, char **argv) /* Eval mode Eval模式*/ static int evalMode(int argc, char **argv) /* Latency and latency history modes 延時模式*/ static void latencyMode(void) /* Slave mode */ unsigned long long sendSync(int fd) static void slaveMode(void) /* RDB transfer mode */ static void getRDB(void) /* Bulk import (pipe) mode */ static void pipeMode(void) /* Find big keys */ static redisReply *sendScan(unsigned long long *it) static int getDbSize(void) static int toIntType(char *key, char *type) static void getKeyTypes(redisReply *keys, int *types) static void getKeySizes(redisReply *keys, int *types, unsigned long long *sizes) static void findBigKeys(void) /* Stats mode */ static char *getInfoField(char *info, char *field) static long getLongInfoField(char *info, char *field) void bytesToHuman(char *s, long long n) static void statMode(void) /* Scan mode */ static void scanMode(void) /* Intrisic latency mode*/ unsigned long compute_something_fast(void) static void intrinsicLatencyModeStop(int s) static void intrinsicLatencyMode(void) /* Program main() */ int main(int argc, char **argv) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看