我是靠谱客的博主 可爱手链,这篇文章主要介绍Redis Script序言Redis Eval 命令Redis Evalsha 命令Redis Script Load 命令Redis Script kill 命令Redis Script Flush 命令Redis Script Exists 命令,现在分享给大家,希望可以做个参考。
序言
redis提供的执行脚本的几个基础命令
Redis Eval 命令
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
- script: 参数是一段 Lua 5.1 脚本程序。脚本不必(也不应该)定义为一个 Lua 函数。
- numkeys: 用于指定键名参数的个数。------即redis中的key的个数cuiyaonan2000@163.com
- key [key ...]: 从 EVAL 的第三个参数开始算起,表示在脚本中所用到的那些 Redis 键(key),这些键名参数可以在 Lua 中通过全局变量 KEYS 数组,用 1 为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。-----------即redis中的key名
- arg [arg ...]: 附加参数,在 Lua 中通过全局变量 ARGV 数组访问,访问的形式和 KEYS 变量类似( ARGV[1] 、 ARGV[2] ,诸如此类)。----------lua中的全局
redis 127.0.0.1:6379> eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"
Redis Evalsha 命令
Redis Evalsha 命令根据给定的 sha1 校验码,执行缓存在服务器中的脚本。
redis 127.0.0.1:6379> EVALSHA sha1 numkeys key [key ...] arg [arg ...]
- sha1 : 通过 SCRIPT LOAD 生成的 sha1 校验码。
- numkeys: 用于指定键名参数的个数。
- key [key ...]: 从 EVAL 的第三个参数开始算起,表示在脚本中所用到的那些 Redis 键(key),这些键名参数可以在 Lua 中通过全局变量 KEYS 数组,用 1 为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。
- arg [arg ...]: 附加参数,在 Lua 中通过全局变量 ARGV 数组访问,访问的形式和 KEYS 变量类似( ARGV[1] 、 ARGV[2] ,诸如此类)。
Redis Script Load 命令
- Redis Script Load 命令用于将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。
- EVAL 命令也会将脚本添加到脚本缓存中,但是它会立即对输入的脚本进行求值。
- 在脚本被加入到缓存之后,通过 EVALSHA 命令,可以使用脚本的 SHA1 校验和来调用这个脚本。
redis 127.0.0.1:6379> SCRIPT LOAD script
实例:
redis 127.0.0.1:6379> SCRIPT LOAD "return 1"
"e0e1f9fabfc9d4800c877a703b823ac0578ff8db"
Redis Script kill 命令
Redis Script kill 命令用于杀死当前正在运行的 Lua 脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效。
redis 127.0.0.1:6379> SCRIPT KILL
OK
Redis Script Flush 命令
Redis Script Flush 命令用于清除所有 Lua 脚本缓存。
redis 127.0.0.1:6379> SCRIPT FLUSH
OK
Redis Script Exists 命令
redis 127.0.0.1:6379> SCRIPT LOAD "return 'hello moto'" # 载入一个脚本
"232fd51614574cf0867b83d384a5e898cfd24e5a"
redis 127.0.0.1:6379> SCRIPT EXISTS 232fd51614574cf0867b83d384a5e898cfd24e5a
1) (integer) 1
redis 127.0.0.1:6379> SCRIPT FLUSH # 清空缓存
OK
redis 127.0.0.1:6379> SCRIPT EXISTS 232fd51614574cf0867b83d384a5e898cfd24e5a
1) (integer) 0
最后
以上就是可爱手链最近收集整理的关于Redis Script序言Redis Eval 命令Redis Evalsha 命令Redis Script Load 命令Redis Script kill 命令Redis Script Flush 命令Redis Script Exists 命令的全部内容,更多相关Redis内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复