【Lua】简述Redis中lua脚本的EVAL命令

用过redis或者nginx的应该都知道lua脚本,lua虽然不难但是也需要一定的学习成本。如果你是基于Redis插入Lua脚本,则只需要一些简单的Lua脚本知识,就可以初步的应用lua。通过Lua脚本,我们可以原子性的去处理一些单条redis命令无法完成的一系列操作[1]。

最先需要认识的,就是EVAL命令,通过它,我们可以执行redis的命令。
其命令格式如下[2]:

EVAL luascript numkeys key [key ...] arg [arg ...]

一次分别是EVAL关键字、脚本字符串、key数量、key数组,arg数组(值数组)

示例如下[2]:

127.0.0.1:6379> EVAL "return redis.call('GET',KEYS[1])" 1 hello
"world"

之所以会来写这个文章,是因为在查看redis分布式锁的时候,看到了这段代码[3]:

        String checkAndExpireScript = "if redis.call('get', KEYS[1]) == ARGV[1] then " +
                "return redis.call('expire',KEYS[1],ARGV[2]) " +
                "else " +
                "return 0 end";
        jedis.eval(checkAndExpireScript, 1, lockKey, lockValue, "30");

理解了上面的EVAL命令,就能够很简单的理解jedis.eval()方法及其参数的意思了。

OK,关于eval的简述就写到这里。有的时候学习就是这样,别想着一下子就全都学会,就需要啥就去学啥,慢慢的很多东西就都能掌握了…

参考文章:
[1],Redis中使用Lua脚本(一)
[2],Redis Lua脚本完全入门
[3],redis系列:基于redis的分布式锁

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值