美文网首页
redis中使用lua脚本的好处

redis中使用lua脚本的好处

作者: 马路边的小破孩 | 来源:发表于2020-04-28 17:43 被阅读0次

    什么是lua?

    Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

    redis使用lua的好处

    1.原子性。redis执行lua脚本的时候,会将它作为一个整体执行,要么全部执行成功,如果出现异常则执行结果不会更新到redis中,可以代替redis中的事务操作。

    2.节省网络开销。通过脚本的方式执行多个命令,一次传输返回结果。redis的pipeline也同样有这样的优点,相比lua脚本中执行的多个命令,pipe中某个命令执行出现异常不会影响其他的命令的更新到redis中;但lua脚本使用更加灵活。

    3.脚本的复用。如果每次请求都要传输脚本,存在一定的网络开销,通过 SCRIPT LOAD 命令进行Redis 将脚本缓存到服务器的操作,并且返回脚本内容的SHA1校验和,Evalsha 命令根据给定的 sha1 校验码,执行缓存在服务器中的脚本。

    语法

    redis eval命令语法 实例

    java中redis操作lua的实例

    下面通过一个springboot通过redisTemaplate实例,使用lua脚本,redis执行lua脚本获取执行结果。

    java代码

    lua脚本再resources资源目录下,lua脚本如下:

    lua脚本

    通过脚本执行多个get命令,执行完毕后一次性将执行结果返回。但是耗时性,由于redis原子性的要求,导致同一时间只能执行一个命令,因此,单个lua不建议太大,导致系统被占用,从而引起其他服务无法正常进行。如果需要redis立即返回执行结果而lua脚本过大,则不太建议使用。

    相关文章

      网友评论

          本文标题:redis中使用lua脚本的好处

          本文链接:https://www.haomeiwen.com/subject/omcmmxtx.html