zoukankan      html  css  js  c++  java
  • 修改redis源码自定义hello-world命令

    在前述文章里,我有总结过Redis命令执行的大概过程,现在我们根据这个过程来实现一个hello命令返回world结果

    前面的部分可以和系统共用,从processCommand开始

    一、要声明一个命令,以便lookupCommand查找到
    在server.c 127行有redisCommandTable的定义,在75行到126行有它的定义解释
    在240行找到ping命令的定义,对照编辑一行hello命令
    {"ping",pingCommand,-1,"tF",0,NULL,0,0,0,0,0},
    {"hello",helloCommand,1,"lt",0,NULL,0,0,0,0,0}

    二、在server.h声明helloCommand的命令类别函数
    pingCommand的定义在1936行,在这个模块末尾加上hellocommand的声明即可
    void helloCommand(client *c);

    三、编写hello命令的函数
    server.c 2910到2931行有ping的命令

    void pingCommand(client *c) {
    if (c->argc == 1)
    addReply(c,shared.pong);
    }

    返回的shared.pong是前面讲到的共享对象,共享对象的源码在server.h的782行
    在共享对象里新增world信息 *world
    并在createSharedObjects函数里新增 *world返回结果 server.c 1435行
    shared.pong = createObject(OBJ_STRING,sdsnew("+PONG "));


    void helloCommand(client *c) {
    if (c->argc == 1)
    addReply(c,shared.hello);
    }

    四、编译并缺省启动Redis-server

    make PREFIX=/app/zhouqw/src/redis-5.0.4/ install  

    [root@node202 bin]# pwd
    /app/zhouqw/src/redis-5.0.4/bin

    [root@node202 ~]# ./redis-server &



  • 相关阅读:
    day38 04-Spring加载配置文件
    day38 03-Spring的IOC和DI的区别
    day38 02-Spring快速入门
    关于mysql-connector-net在C#中的用法
    SQL的四种连接用法整理
    SQL的四种连接用法整理
    SQL的四种连接用法整理
    45道CSS基础面试题
    45道CSS基础面试题
    45道CSS基础面试题
  • 原文地址:https://www.cnblogs.com/chou1214/p/14065547.html
Copyright © 2011-2022 走看看