<?php declare(strict_types=1); ini_set('display_errors', 'On'); ini_set('error_reporting', E_ALL); // Lua脚本 $script = <<<LUA local name_key = KEYS[1] -- 获取键名name local sex_key = KEYS[2] -- 获取键名sex local birth_key = KEYS[3] -- 获取键名birth local name_value = redis.call("GET", name_key) -- 获取name的键值 local sex_value = redis.call("GET", sex_key) -- 获取sex的键值 local birth_value = redis.call("GET", birth_key) -- 获取birth的键值 local argv1_value = ARGV[1] -- 获取参数1的值 local argv2_value = ARGV[2] -- 获取参数2的值 local argv3_value = ARGV[3] -- 获取参数3的值 -- 返回数据 return { name_value, sex_value, birth_value, argv1_value, argv2_value, argv3_value, } LUA; $keys = ['name', 'sex', 'birth']; // LUA脚本对应的KEYS数组 $argv = ['李四', '女', '2004']; // LUA脚本对应的ARGV数组 $redis = new Redis(); $redis->connect('localhost'); $redis->auth('************'); $eval = $redis->eval($script, array_merge($keys, $argv), count($keys)); // 方法定义:public function eval(string $script, array $args = [], int $numKeys = 0) // 参数说明:{$args}数组里的前{$numKeys}个元素是KEY,后面的元素则是ARGV,在Lua脚本中可通过KEYS[i]、ARGV[i]的方式访问。 print_r($eval); // Array // ( // [0] => 张三 // [1] => 男 // [2] => 2003 // [3] => 李四 // [4] => 女 // [5] => 2004 // )
Copyright © 2026 码农人生. All Rights Reserved