将phpredis连接到运行lua脚本的redis cli

inb24sb2  于 2021-06-07  发布在  Redis
关注(0)|答案(0)|浏览(212)

我已经得到了一个lua脚本。 example.lua 我可以从电话亭打给你 redis-cli 这样(linux环境):

redis-cli> eval "local e = f_${example_sha256_hash}(); \
   return e.myfunction(ARGV[1], ARGV[2], ARGV[3]);" \
   0 ${PARAM_1} ${PARAM_2} ${PARAM_3}

哪里 ${example_sha256_hash} 是example.lua脚本的sha256值,函数myfunction有三个参数(定义为param1到3)。我需要从php调用这个脚本并接收脚本的结果。
我在用phpredis。我认为这样的方法(使用evalsha)应该有效,但我不确定:

<?php
$script = file_get_contents('example.lua');
$redis = new Redis();
$scriptSHA = $redis->script('load', $script);
echo $redis->evalSha($scriptSHA, array($param1,$param2, $param3));

这在我的例子中是正确的吗?
或者,我可以切换到predis,因为我听说最近的版本允许使用更高级别的抽象(而不是eval或evalsha)运行lua脚本,但是我在文档方面遇到了困难(可能是缺乏lua知识)。另外,我读到它比phpredis效率低。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题