1、redis Eval 命令基本语法:
redis 127.0.0.1:6379> EVAL script numkeys key [key …] arg [arg …]
参数说明:
- script: 参数是一段 Lua 5.1 脚本程序。脚本不必(也不应该)定义为一个 Lua 函数。
- numkeys: 用于指定键名参数的个数。
- key [key …]: 从 EVAL 的第三个参数开始算起,表示在脚本中所用到的那些 Redis 键(key),这些键名参数可以在 Lua 中通过全局变量 KEYS 数组,用 1 为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。
- arg [arg …]: 附加参数,在 Lua 中通过全局变量 ARGV 数组访问,访问的形式和 KEYS 变量类似( ARGV[1] 、 ARGV[2] ,诸如此类)。
1 | redis 127.0.0.1:6379> eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 i am hello lua |
2、redis SCRIPT LOAD 命令基本语法:
redis 127.0.0.1:6379> SCRIPT LOAD script
使用说明:
- 用于将脚本
script
添加到脚本缓存中,但并不立即执行这个脚本。 - 如果给定的脚本已经在缓存里面了,那么不执行任何操作。
- 加入到缓存之后,通过
EVALSHA
命令,可以使用脚本的SHA1
校验和来调用这个脚本。 - 脚本可以在缓存中保留无限长的时间,直到执行
SCRIPT FLUSH
为止。
1 | redis 127.0.0.1:6379> SCRIPT LOAD "return 1" |
3、redis Evalsha 命令基本语法:
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] ,诸如此类)。
1 | redis 127.0.0.1:6379> SCRIPT LOAD "return 'hello moto'" |
4、redis Script Exists 命令基本语法:
redis 127.0.0.1:6379> SCRIPT EXISTS sha1 [sha1 …]
返回值说明:
- 0 : 表示脚本不存在于缓存。
- 1 : 表示脚本已经在缓存里面了。
1 | redis 127.0.0.1:6379> SCRIPT LOAD "return 'hello moto'" # 载入一个脚本 |
5、redis Script Flush 命令基本语法:
redis 127.0.0.1:6379> SCRIPT FLUSH
使用说明:
- 清除所有 Lua 脚本缓存。
1 | redis 127.0.0.1:6379> SCRIPT FLUSH |
赏
使用支付宝打赏
使用微信打赏
欢迎点击上方按钮对我打赏,谢谢你给我吃糖果