gpt4 book ai didi

redis - 在 redis-cli 中为从外部 redis 模块加载的新命令添加帮助文档

转载 作者:可可西里 更新时间:2023-11-01 11:14:33 36 4
gpt4 key购买 nike

redis-cli 中命令的帮助存储在 redis/src/help.h 中。

我想为通过 redis 模块(使用 loadmodule)加载的命令提供帮助。我可以从Redis Modules: an introduction to the API找到相关信息

你有什么建议吗?

最佳答案

我检查了 redis/src/redis-cli.c , 帮助是在编译时创建的。目前不可能这样做。

static void cliInitHelp(void) {
int commandslen = sizeof(commandHelp)/sizeof(struct commandHelp);
int groupslen = sizeof(commandGroups)/sizeof(char*);
int i, len, pos = 0;
helpEntry tmp;

helpEntriesLen = len = commandslen+groupslen;
helpEntries = zmalloc(sizeof(helpEntry)*len);

for (i = 0; i < groupslen; i++) {
tmp.argc = 1;
tmp.argv = zmalloc(sizeof(sds));
tmp.argv[0] = sdscatprintf(sdsempty(),"@%s",commandGroups[i]);
tmp.full = tmp.argv[0];
tmp.type = CLI_HELP_GROUP;
tmp.org = NULL;
helpEntries[pos++] = tmp;
}

for (i = 0; i < commandslen; i++) {
tmp.argv = sdssplitargs(commandHelp[i].name,&tmp.argc);
tmp.full = sdsnew(commandHelp[i].name);
tmp.type = CLI_HELP_COMMAND;
tmp.org = &commandHelp[i];
helpEntries[pos++] = tmp;
}
}

Redis 模块开发人员不应将他们的模块命令文档写在redis/src/help/h 中。我建议如下:

  1. 使用新的模块 API 函数,模块开发人员将新命令文档(包括命令语法、摘要、自从、组)注册到系统哈希中。

  2. redis-cli 从系统哈希中读取额外的命令文档,以填充 helpEntries[]

关于redis - 在 redis-cli 中为从外部 redis 模块加载的新命令添加帮助文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55643385/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com