Redis-学-02-Redis脚本(Lua)

Redis-学-02-Redis脚本(Lua)

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

语法

Eval 命令基本语法如下:

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

参数说明:

  1. script 是一段 Lua5.1 脚本程序。脚本不必(也不应该)定义为一个 Lua 函数。
  2. numkeys:指定键名参数个数
  3. key [key …]:从 EVAL 的第三个参数开始算起,表示在脚本中所用到的那些 Redis 键(key),这些键名参数可以在 Lua 中通过全局变量 KEYS 数组,用 1 为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。
  4. arg [arg …]: 附加参数,在 Lua 中通过全局变量 ARGV 数组访问,访问的形式和 KEYS 变量类似( ARGV[1] 、 ARGV[2] ,诸如此类)。

无参数:

127.0.0.1:6379> eval "return 'helo'" 0
"helo"
127.0.0.1:6379> 

一个参数:

127.0.0.1:6379> eval "if KEYS[1] == ARGV[1] then return 1 else return 0 end" 1 key1 abcde
(integer) 0
127.0.0.1:6379> 

多个参数:

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"
127.0.0.1:6379> 

使用 Redis 命令:redis.call(’’)。下面的意思表示如果 key对应的value值和传入的值相等,那么则删除该key,value键值对,否则返回0。

127.0.0.1:6379> eval "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end" 1 good good
(integer) 0
127.0.0.1:6379> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值