PHP中使用redis执行lua脚本示例


摸索了一下在PHP中如何使用redis执行lua脚本,写了一个脚本如下,供以后参考

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: yanghailong
 5  * Date: 2020/10/27
 6  * Time: 3:44 PM
 7  */
 8 $redis = new Redis();
 9 $redis->connect('127.0.0.1',6379);
10 $lua = <<<SCRIPT
11       return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}
12 SCRIPT;
13 var_dump($redis->eval($lua,array('key1','key2','first','second'),2));
14 
15 $redis->close();

这个执行的对应命令如下:

eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

解释: "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 是被求值的 Lua 脚本,数字 2 指定了键名参数的数量, key1 和 key2 是键名参数,分别使用 KEYS[1] 和 KEYS[2] 访问,而最后的 first 和 second 则是附加参数,可以通过 ARGV[1] 和 ARGV[2] 访问它们。

PHP中使用redis拓展执行脚本时,eval方法的参数 3个,第一个是脚本代码,第二个是一个数组,参数数组,第三个参数是个整数,表示第二个参数中的前几个是key参数,剩下的都是附加参数


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM