6

我需要在与 Redis 一起使用的 Lua 中处理大量数据。通常你会这样做:

require"bc"
bc.mul(...)
bc.mod(...)

等等,但不幸的是 Redis Lua 不支持“require”。我发现的唯一方法是将用 lua 本身编写的大量库直接插入到脚本中。

我可以得到的唯一这样的库:oss.digirati.com.br/luaignum/index.htm

我可以出于具体脚本的目的剥离库,但它仍然很大。有什么方法可以更有效地处理 Redis Lua 中的大量数据?

UPDATE1:如果我将整个库保存到一个密钥中,然后像这样访问它:

local BigNumLib = KEYS[1];
BigNumLib.BigNum.mul(KEYS[2],KEYS[3]);

我不确定语法,也许我需要将所有库包含在一个 lua 表 {} 中。

4

1 回答 1

1

我不熟悉 Redis 如何处理 Lua 代码,但是为什么将库本身插入到您的代码中是一个问题?你应该能够做这样的事情:

local bc = function()
  -- insert the code of BigNum.lua here
  return BigNum
end
bc.mul(....)

代码可能是在 Lua 5.1 之前编写的,所以我不知道是否有任何兼容性问题,但这至少应该让您有一个开始。

于 2013-06-25T22:24:30.447 回答