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命令来让钩子停止正在执行的脚本。
rdis lua脚本
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 指令集 lua_capture_error_log lua_use_default_type lua_malloc...
- 清迈有着“北国玫瑰”的雅称,素以“美女和玫瑰”享誉天下。 古老的寺庙就在身旁,仿佛置身一幅飘在浮云上的剪影,在沉寂...