rdis lua脚本

2018-07-22  本文已影响0人  我要尝鲜

redis服务器在启动时,会对内嵌的lua环境执行一系列修改操作,从而确保内嵌的lua环境可以满足redis在功能性、安全性等方面的需要。
redis服务器专门使用一个伪客户端来执行lua脚本中包含的redis命令。
redis使用脚本字典来保存所有被EVAL命令执行过,或者被SCRIPT LOAD命令在如果的lua脚本,这些脚本可以用于实现SCRIPT EXISTS命令,以及实现脚本赋值功能。
EVAL命令为客户端驶入的脚本在lua环境呢中定义一个函数,并通过调用这个函数来执行脚本。
EVALSHA命令通过直接调用lua环境中已定义的函数来执行脚本。
SCRIPT FLUSH命令会清空服务器lua_scripts字典中保存的脚本,并重置lua环境。
SCRIPT EXISTS命令接受一个或多个SHA1校验和为参数,并通过检查lua_scripts字典来确认校验和对应的脚本是否存在。
SCRIPT LOAD命令接受一个lua脚本作为参数,为该脚本在lua环境中创建函数,并将脚本保存到lua_scripts字典中。
服务器在执行脚本之前,会为lua环境设置一个超时处理钩子,当脚本出现超时运行情况时,客户端可以通过向服务器发送SCRIPT KILL命令来让钩子停止正在执行的脚本。

上一篇下一篇

猜你喜欢

热点阅读