扫码一下
查看教程更方便
从2.6.0版开始,和使用redis内置的lua解释器执行脚本。 eval 的基本语法
redis 127.0.0.1:6379> eval "return {keys[1],keys[2],argv[1],argv[2]}" 2 key1 key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"
eval的第一个参数是lua 5.1脚本。 该脚本不需要定义lua函数(也应该没有)。 它只是一个lua程序,将在redis服务器的上下文中运行。
eval的第二个参数是表示redis中用于脚本的键名的数量(从第三个参数开始)。 lua可以使用keys全局变量以基于一个的数组形式访问参数(keys[1],keys[2],...)。 上面示例中的2 表示后面有两个指定的键名——key1和key2。
剩余的是额外的参数,可以使用argv
来获取,比如上面示例中的 first 和 second 就是传给lua脚本的额外的参数,分别使用argv[1]和argv[2]获取。
下面是redis脚本常用的命令:
序号 | 命令 | 说明 |
---|---|---|
1 | 执行lua脚本 | |
2 | 执行lua脚本 | |
3 | 订阅一个或多个符合给定模式的频道 | |
4 | 查看指定的脚本是否已经被保存在缓存当中 | |
5 | 从脚本缓存中移除所有脚本 | |
6 | 杀死当前正在运行的 lua 脚本 | |
7 | 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本 |