Redis 源码剖析与实战
蒋德钧
中科院计算所副研究员
17747 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
Redis 源码剖析与实战
15
15
1.0x
00:00/00:00
登录|注册

31 | 从Module的实现学习动态扩展功能

你好,我是蒋德钧。
Redis 本身已经给我们提供了丰富的数据类型和数据读写功能,而且,Redis 实现了基于 IO 复用的网络框架、数据主从复制和故障恢复机制,以及数据切片集群,这些功能通常都是后端系统所需的核心功能。
那么,当我们在实际应用中,既希望能用上 Redis 已经实现的核心功能,又需要新增一些额外的命令或是数据类型时,该怎么办呢?
其实,Redis 从 4.0 版本开始,就提供了扩展模块(Module)的功能。这些扩展模块以动态链接库(so 文件)的形式加载到 Redis 中,我们可以基于 Redis 来新增功能模块。这些模块通常包括了新增的命令和数据类型,与此同时,这些数据类型对应的数据会保存在 Redis 数据库中,从而保证了应用程序对这些数据的高性能访问。
新增功能模块是后端系统开发过程中经常会遇到的问题,那么今天这节课,我就带你学习 Redis 是如何实现新增一个功能模块的。掌握了今天的课程内容,你就可以参考 Redis 的实现方案,给自己的系统添加相应的功能模块扩展框架,从而增加系统的灵活性。
下面,我们就先来了解下 Redis 的扩展模块框架的初始化操作。因为和 Redis 扩展模块框架相关的功能主要是在redismodule.hmodule.c文件中定义和实现的,你可以在这两个文件中查找接下来要介绍的数据结构或函数。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Redis 4.0版本引入了扩展模块功能,允许用户通过动态链接库加载扩展模块,以新增命令或数据类型,并保证高性能访问。文章详细介绍了模块框架的初始化操作,包括创建待加载模块列表、全局哈希表以及注册核心API函数。通过一个简单的“helloredis”模块示例,展示了模块加载时的初始化、注册和具体功能实现的过程。读者可以通过本文了解Redis扩展模块框架的初始化工作以及如何实现一个模块,并掌握相应的技术特点。文章还介绍了新增命令的注册和执行过程,以及开发新增命令的实现函数的步骤。通过示例展示了模块加载、初始化和注册命令的过程,使读者能够快速了解Redis扩展模块的实现原理和操作步骤。文章强调了Redis扩展模块框架的工作机制,包括初始化、新模块的初始化、新命令的注册与执行过程,并提供了关键点的总结,帮助读者掌握开发扩展模块的关键要点。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Redis 源码剖析与实战》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部