zoukankan      html  css  js  c++  java
  • Redis 与 Lua Script

    Redis Script

    1、EVAL script numkeys key [key ...] arg [arg ...]

    从 Redis 2.6.0 版本开始,通过内置的 Lua 解释器,可以使用 EVAL 命令对 Lua 脚本进行求值。

    script 参数是一段 Lua 5.1 脚本程序,它会被运行在 Redis 服务器上下文中,这段脚本不必(也不应该)定义为一个 Lua 函数。

    numkeys 参数用于指定键名参数的个数。

    键名参数 key [key ...] 从 EVAL 的第三个参数开始算起,表示在脚本中所用到的那些 Redis 键(key),这些键名参数可以在 Lua 中通过全局变量 KEYS 数组,用 1 为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。

    在命令的最后,那些不是键名参数的附加参数 arg [arg ...] ,可以在 Lua 中通过全局变量 ARGV 数组访问,访问的形式和 KEYS 变量类似( ARGV[1] 、 ARGV[2] ,诸如此类)。

    在 Lua 脚本中,可以使用两个不同函数来执行 Redis 命令,它们分别是:

    • redis.call()
    • redis.pcall()

    2、SCRIPT LOAD script

    将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。

    EVAL 命令也会将脚本添加到脚本缓存中,但是它会立即对输入的脚本进行求值。

    如果给定的脚本已经在缓存里面了,那么不做动作。

    在脚本被加入到缓存之后,通过 EVALSHA 命令,可以使用脚本的 SHA1 校验和来调用这个脚本。

    脚本可以在缓存中保留无限长的时间,直到执行 SCRIPT FLUSH 为止。

    关于使用 Redis 对 Lua 脚本进行求值的更多信息,请参见 EVAL 命令。

    参考:http://redisdoc.com/script/script_kill.html

  • 相关阅读:
    1031.查询-集合操作
    1030.查询-select子句
    1029.查询-复杂分组grouping子句
    1028.查询-group by和having子句
    1027.查询-where子句
    1026.查询-from子句2
    1025.查询-from子句
    1024.查询-概述
    1023.表-数据操作
    图片隐写之stegsolve使用(转载)
  • 原文地址:https://www.cnblogs.com/tekkaman/p/4892392.html
Copyright © 2011-2022 走看看