Redis脚本

Redis脚本

Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]

 

127.0.0.1:6379> eval "return 'hello world'" 0

"hello world"

127.0.0.1:6379> eval "return 1+1" 0

(integer) 2

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"

其中 "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 是被求值的 Lua 脚本,数字 2 指定了键名参数的数量, key1  key2 是键名参数,分别使用 KEYS[1]  KEYS[2] 访问,而最后的 first  second 则是附加参数,可以通过 ARGV[1]  ARGV[2] 访问它们

 

通过调用redis.call()函数或者redis.pcall()函数,可以直接在Lua脚本里面执行Redis命令

127.0.0.1:6379> eval "return redis.call('PING')" 0

PONG

127.0.0.1:6379> eval "return redis.call('DBSIZE')" 0

(integer) 10

127.0.0.1:6379> set msg "hello world"

OK

127.0.0.1:6379> eval "return 'The message is:' .. redis.call('GET',KEYS[1])" 1 msg

"The message is:hello world"

redis.call()redis.pcall()的区别,在于被执行的脚本出错时,redis.call()会返回出错脚本的名字以及EVAL命令的错误信息,而redis.pcall()只返回EVAL命令的错误信息

 

转载于:https://www.cnblogs.com/allenhu320/p/11339855.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值