有一万种能力的 Redis Module 初体验

Redis Module 允许开发者通过自定义命令和数据类型扩展 Redis 功能,从4.0版本开始引入。本文介绍了如何加载、卸载模块,以及通过高级和低级 API 访问 Redis 数据。同时讲解了创建新数据类型的要求,并提到了一些常见的 Redis 模块。
摘要由CSDN通过智能技术生成

Redis Module 通过使用外部模块和自定义的 Redis 命令来扩展 Redis 的能力,在 Redis 4.0 版本引入。

Reids Module 是一种动态库,可以在启动时通过配置文件或者命令行参数获取路径进行加载,也可以在 Redis 运行后通过命令加载。它本身的设计目的就是在不同版本的 Redis 中运行,因此无需重新编译模块即可与特定版本 ( Redis > 4.0 )一起运行。

使用模块

下载动态库,并在配置文件中加入

loadmodule /path/to/mymodule.so

或者在命令行启动时,加入参数

MODULE LOAD /path/to/mymodule.so

即可在 Redis 中运行模块。 我们可以通过命令

module list

来查看加载的模块。如果想要卸载已经加载的模块,可以使用命令

module unload mymodule

但是如果一个模块实现了新的数据结构,那么它不能被这个命令卸载,只能通过重启 Redis 并修改配置文件的方式来卸载这个模块

实现模块

想要实现一个 Redis Module 很简单,首先需要拷贝 redismodule.h,然后实现两个函数 _RedisCommand 和 _OnLoad 即可。前者用于命令的具体逻辑,后者用于挂载前者函数的指针到 Redis 的命令字典中。这样就可通过命令调用来进行相应的功能处理。实现 Redis Module 的语言并不一定要求是 C 语言,可以是 C++/Cython 等可以与 C 语言绑定的语言。

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

int HelloworldRand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {
   
    RedisModule_ReplyWithLongLong(ctx
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值