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