apoc.redis.eval

过程 Apoc 扩展

apoc.redis.eval(uri, script, outputType, keys, values, {config}) | 执行 'EVAL script' 命令。在提供给该过程的参数中,键绑定到 Lua 脚本的 KEYS[n] 特殊数组,值绑定到 Lua 脚本的 ARGV[n] 特殊数组。

签名

apoc.redis.eval(uri :: STRING?, script :: STRING?, outputType :: STRING?, keys :: LIST? OF ANY?, values :: LIST? OF ANY?, config = {} :: MAP?) :: (value :: ANY?)

输入参数

名称 类型 默认

uri

STRING?

null

script

STRING?

null

outputType

STRING?

null

keys

LIST? OF ANY?

null

值 (values)

LIST? OF ANY?

null

config

MAP?

{}

输出参数

名称 类型

ANY?

使用示例

我们可以通过 apoc.redis.eval 过程执行任何可以使用 EVAL 命令 执行的 Lua 脚本。

在该过程中,第三个参数(此处为 VALUE)是 ScriptOutputType,即 Lua 脚本的返回类型,可以是 BOOLEANINTEGERSTATUSVALUEMULTI

第四个和第五个参数分别对应 Lua 脚本中的特殊数组 KEYS[n]ARGV[n]

因此,如果我们有一个键为 testEval、值为 valueEval 的记录,我们可以执行以下查询

CALL apoc.redis.eval($uri, 'return redis.call("set", KEYS[1], ARGV[1])', 'VALUE', ['testEval'], ['key:name'], {})

这等同于 redis-cli 命令 eval "return redis.call('set', KEYS[1], ARGV[1])" 1 testEval key:name,并返回

表 1. 结果

"OK"

或者,我们也可以执行(不带 ARGV[n]

CALL apoc.redis.eval($uri, 'return redis.call("get", KEYS[1])', 'VALUE', ['testEval'], [], {})
表 2. 结果

key:name

这等同于 redis-cli 命令 eval "return redis.call('get', KEYS[1])" 1 testEval

© . This site is unofficial and not affiliated with Neo4j, Inc.