Redis Lua编程与调试工具使用

前言

Redis自2.6.0版本开始内置Lua解释器。

Lua,轻量级脚本语言,号称最快的脚本语言。

两者结合将爆发出巨大的威力。

简介

Redis Lua脚本可以调用原生的Redis命令,也可以包含自定义的控制流、逻辑运算、数学运算等,将复杂的业务逻辑封装起来,形成一个原子事务。

这些特性使我们可以自由地扩展Redis,封装“自定义命令”。

与MULTI+EXEC对比

使用MULTI+EXEC及相关组合命令,也可以将多个命令封装成事务,但灵活性不如Lua脚本。

除此之外,MULTI+EXEC需要多次向Redis server发送事务命令,每次发送都会有RTT(Round Trip Time)消耗,性能低于Lua脚本。

Redis Lua Scripts Debugger (LDB)

Redis自3.2版本开始包含LDB,用于调试Lua脚本。

LDB支持设置断点,逐行执行等。

一个简单的例子

执行set命令,并设置新的ttl

编写Lua脚本,文件名为set_ttl.lua

local set_msg = false
-- 执行redis命令的返回结果被封装成了table,形如{'ok':'OK'}
local key_type = redis.call('TYPE' , KEYS[1])['ok']
-- key的数据类型为string或key不存在时,继续执行
if key_type == 'string' or key_type == 'none' then
    local ttl = tonumber(ARGV[2])
    set_msg = redis.call('SET', KEYS[1], ARGV[1], 'EX', ttl)['ok']
end
return set_msg  -- 正常情况下会返回"OK"

<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值