PHP中使用redis执行lua脚本示例 lrange ltrim
时间: 2024-09-19 08:10:19 浏览: 44
phpredis执行LUA脚本示例代码
在PHP中使用Redis执行Lua脚本,可以利用`eval`或`script`命令。这里我们给出一个使用`lrange`和`ltrim`这两个Redis操作的Lua脚本示例:
```php
// 假设我们有一个名为`mylist`的Redis键,存储了一个整数列表
$redis = new Redis();
$redis->connect('localhost', 6379);
// 定义Lua脚本,这个脚本会获取列表的前5个元素,并删除多余的部分
$lua_script = <<<'LUA'
local start, stop = KEYS[1], tonumber(ARGV[1])
local range = redis.call("LRANGE", KEYS[1], start, stop - 1)
redis.call("LTRIM", KEYS[1], stop + 1, -1) -- 删除多余的元素
return range
LUA;
// 将Lua脚本注册到Redis服务器
$lua_id = $redis->registerScript($lua_script, REDISSCRIPT_LUA);
// 调用脚本,传入所需的参数,例如列表名称和新的最大长度
$start_index = 0;
$max_length = 5; // 只保留前5个元素
$result = $redis->eval($lua_id, array('mylist'), $start_index, $max_length);
// 输出结果
print_r($result);
阅读全文