script

英 [skrɪpt]   美 [skrɪpt]  

n.脚本,手迹;书写体铅字;剧本、广播稿或者电影剧本

vt.为电影(或戏剧等)写剧本;编造

第三人称单数: scripts 复数: scripts 现在分词: scripting 过去式: scripted 过去分词: scripted

kill

英 [kɪl]   美 [kɪl]  

vt.& vi.杀死…

vt.使停止[结束,失败];破坏,减弱,抵消;使痛苦,使受折磨;使笑得前仰后合,使笑死了

n.杀死;猎;被捕杀的动物;猎物

adj.致命的

第三人称单数: kills 现在分词: killing 过去式: killed 过去分词: killed

redis SCRIPT KILL命令 语法

作用:杀死当前正在运行的 Lua 脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效。这个命令主要用于终止运行时间过长的脚本,比如一个因为 BUG 而发生无限 loop 的脚本,诸如此类。

语法:SCRIPT KILL

说明:SCRIPT KILL 执行之后,当前正在运行的脚本会被杀死,执行这个脚本的客户端会从 EVAL 命令的阻塞当中退出,并收到一个错误作为返回值。另一方面,假如当前正在运行的脚本已经执行过写操作,那么即使执行 SCRIPT KILL ,也无法将它杀死,因为这是违反 Lua 脚本的原子性执行原则的。在这种情况下,唯一可行的办法是使用 SHUTDOWN NOSAVE 命令,通过停止整个 Redis 进程来停止脚本的运行,并防止不完整(half-written)的信息被写入数据库中。

可用版本:>= 2.6.0

时间复杂度:O(1)

返回:执行成功返回 OK ,否则返回一个错误。

redis SCRIPT KILL命令 示例

# 没有脚本在执行时
redis> SCRIPT KILL
(error) ERR No scripts in execution right now.
# 成功杀死脚本时
redis> SCRIPT KILL
OK
(1.30s)
# 尝试杀死一个已经执行过写操作的脚本,失败
redis> SCRIPT KILL
(error) ERR Sorry the script already executed write commands against the dataset. You can either wait the script termination or kill the server in an hard way using the SHUTDOWN NOSAVE command.