美文网首页
redis.conf详解之module

redis.conf详解之module

作者: 小易哥学呀学 | 来源:发表于2021-11-15 13:30 被阅读0次

1、用法:

$yourPath/redis.conf 文件中添加以下配置

loadmodule $yourPath/my.so

2、module制作:

准备工作

1:需要文件$yourPath/redismodule.h ,下载地址:https://github.com/redis/redis/blob/unstable/src/redismodule.h
2:安装gcc, 使用gcc --version检查是否安装

开始制作

step1将下方内容写入文件$yourPath/my.c

#include "redismodule.h"
#include <stdlib.h>

int HelloworldRand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {
    RedisModule_ReplyWithLongLong(ctx,rand());
    return REDISMODULE_OK;
}

int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {
    if (RedisModule_Init(ctx,"helloworld",1,REDISMODULE_APIVER_1)
        == REDISMODULE_ERR) return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"helloworld.rand",
        HelloworldRand_RedisCommand, "fast random",
        0, 0, 0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    return REDISMODULE_OK;
}

step2
-c表示只编译(compile),而不连接。
-o用于说明输出(output)文件名。
-fPIC指Position Independent Code。共享库要求有此选项,以便实现动态连接(dynamic linking)。
-shared表示生成一个共享库。
依次执行下列2条命令

$ gcc -c -fPIC -o my.o my.c
$ gcc -shared -o my.so my.o

step3
$yourPath/redis.conf 文件中添加以下配置

loadmodule $yourPath/my.so

step4启动redis

$ /usr/bin/redis-server yourPath/redis.conf

step5 验证与使用

$ redis-cli
127.0.0.1:6379> module list
1) 1) "name"
   2) "helloworld" // 加载成功
   3) "ver"
   4) (integer) 1
127.0.0.1:6379>
127.0.0.1:6379> helloworld.rand
(integer) 1358584661
127.0.0.1:6379>

原生注释

################################## MODULES #####################################

# Load modules at startup. If the server is not able to load modules
# it will abort. It is possible to use multiple loadmodule directives.
#
# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so

其他
官方模块 https://redis.io/modules
官方模块制作 https://redis.io/topics/modules-intro

相关文章

  • redis.conf详解之module

    1、用法: 在 $yourPath/redis.conf 文件中添加以下配置 2、module制作: 准备工作 1...

  • redis.conf详解之include

    1、用法: 在 $yourPath/redis.conf 文件中添加以下配置 2、用途: 模块化配置,比如所有服务...

  • redis.conf详解之timeout

    用法 单位是秒 用途 在timeout时间内如果没有数据交互,redis侧将关闭连接。没有数据交互:redis客户...

  • redis.conf详解之port

    用法 用途 指定redis监听的端口。 注意事项: 1.默认是63792.配置为0时将不监听任何端口(也就是服务没...

  • redis.conf详解之bind

    用法 绑定到本机的其中一个ip 绑定到本机的两个ip,如果10.0.0.1无效redis依旧可以启动。 绑定到本机...

  • redis.conf详解之daemonize

    用法 作为非守护进程运行 作为守护进程运行 注意事项: 默认情况下,Redis不作为守护进程运行。如果以守护进程运...

  • redis.conf详解之pidfile

    用法 注意事项: 如果pidfile文件创建失败,也不会影响redis启动。配置了daemonize或pidfil...

  • redis.conf详解之maxclients

    本文基于 redis_version:6.2.5 用法 设置一个redis实例支持的最大连接数。 注意事项: 默认...

  • Redis.conf 详解

    Redis.conf 详解 参考地址:https://www.cnblogs.com/zhang-ke/p/598...

  • Redis.conf详解

    Redis.conf详解 单位 对大小写不敏感 包含include /path/to/local.conf 网...

网友评论

      本文标题:redis.conf详解之module

      本文链接:https://www.haomeiwen.com/subject/lqnftrtx.html