lua - 在Redis中编写Lua脚本时如何包含第三方库

标签 lua redis shared-libraries decimal

我正在使用 Lua 的 Redis 脚本来做一些与金钱相关的模块 ( http://redis.io/commands/eval )。不幸的是,Redis Lua 不支持大十进制类型。我通过互联网搜索并找到了一些支持 lua 小数点的库,比如 lmapm。但不幸的是,我不知道如何安装以在 Redis 脚本中使用它。

对于一般问题,我如何为 Redis 脚本安装第三方库(如 https://github.com/amakawa/ohm.lua ),因为 Redis 脚本似乎不理解 Lua 的一些基本功能,如“模块”,并且有一些限制,如没有全局变量和函数...

请帮我解决这个问题。我四处搜索了几天,但找不到任何解决方案。非常感谢,非常感谢!

最佳答案

你不能——Redis 的 Lua 引擎不支持使用外部库。

解决此问题的唯一方法是重构库并将其转换为可以运行的 Redis 脚本。重构后的脚本可以成为您脚本的一部分,或者您可以SCRIPT LOAD 它并使用未记录的功能从您的脚本中调用它 - 在您的脚本中调用函数 f_sha1其中 sha1 是库脚本的 sha1 散列(但请确保您首先SCRIPT LOAD 库脚本)。

关于lua - 在Redis中编写Lua脚本时如何包含第三方库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31259067/

相关文章:

sorting - 使用lua对嵌套表进行排序

visual-studio-2010 - OpenCV是否将部分项目部署为静态或动态库或其他?

c - 全局变量的多重定义

Angular 6 多库交叉依赖

directory - 如何在Lua中创建目录?

function - lua中有前向声明吗?

lua - 在整个文件的闭包中看不到局部变量?

node.js - 基准测试 Node.JS 服务器

ruby-on-rails - Docker 无法启动 rails

kubernetes - 错误: unexpected EOF when kubectl cp dump. rdb文件到本地