Redis学习之路(8)命令 -Redis 脚本
2018-09-03 本文已影响15人
William_Wei007
Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。
這章还需要深入了解一下 ,没看懂。
Redis Eval 命令使用 Lua 解释器执行脚本。
1 EVAL script numkeys key [key ...] arg [arg ...]
执行 Lua 脚本。
没懂-已提问到百度。。 等待大神回复ing
2 EVALSHA sha1 numkeys key [key ...] arg [arg ...]
执行 Lua 脚本。
-- 执行命令
127.0.0.1:6379[1]> SCRIPT LOAD "return 'hello'"
--返回结果
"1b936e3fe509bcbc9cd0664897bbe8fd0cac101b"
127.0.0.1:6379[1]> evalsha "1b936e3fe509bcbc9cd0664897bbe8fd0cac101b" 0
"hello"
3 SCRIPT EXISTS script [script ...]
查看指定的脚本是否已经被保存在缓存当中。
4 SCRIPT FLUSH
从脚本缓存中移除所有脚本。
脚本3、4的例子:
127.0.0.1:6379[1]> script exists "1b936e3fe509bcbc9cd0664897bbe8fd0cac101b"
1) (integer) 1
127.0.0.1:6379[1]> script flush
OK
127.0.0.1:6379[1]> script exists "1b936e3fe509bcbc9cd0664897bbe8fd0cac101b"
1) (integer) 0
5 SCRIPT KILL
杀死当前正在运行的 Lua 脚本。
Redis Script kill 命令用于杀死当前正在运行的 Lua 脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效。
这个命令主要用于终止运行时间过长的脚本,比如一个因为 BUG 而发生无限循环的脚本。
SCRIPT KILL 执行之后,当前正在运行的脚本会被杀死,执行这个脚本的客户端会从 EVAL 命令的阻塞当中退出,并收到一个错误作为返回值
6 SCRIPT LOAD script
将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。