redis2.6新特性之eval命令

本文介绍了 Redis 2.6 版本中新引入的 Eval 命令及其使用方法。Eval 命令允许直接执行 Lua 脚本,能够调用 Redis 的内置命令,如 redis.call() 和 redis.pcall()。文章通过实例展示了如何传递键值和参数到 Lua 脚本中。
摘要由CSDN通过智能技术生成

redis2.6新特性之eval命令


eval原型 EVAL script numkeys key [key ...] arg [arg ...]

Available since 2.6.0.

时间复杂度:取决于执行的脚本。


EVAL和EVALSHA的都是Redis从2.6.0版开始使用Lua解释的脚本。EVAL的第一个参数是一个Lua5.1脚本。该脚本并不需要定义一个Lua函数(也不应该)。这仅仅是一个Lua程序,将运行在Redis的服务器的背景下。eval函数的第二个参数是参数的个数如下脚本(从第三个参数)代表Redis的键名。此参数可被访问Lua中使用的按键一个基于阵列的形式(因此KEYS[1]键[2],...)中的全局变量。 所有的额外的参数不应该代表的键名,并使用ARGV全局变量,可以访问Lua中,发生了什么键(ARGV[1],ARGV[2],...)非常相似。 上面说什么,下面的例子应该澄清:

<!-- lang: lua -->
> eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
  1. "key1"

  2. "key2"

  3. "first"

  4. "second" 注:正如你所看到的Lua阵列返回Redis的多散答复,这是一个Redis的返回类型,您的客户端库可能会在你的编程语言转换成一个数组类型。 尽量使用调用lua脚本中的两个redis命令的函数:

    redis.call() redis.pcall()

转载于:https://my.oschina.net/u/242853/blog/137556

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值