我是靠谱客的博主 可爱手链,最近开发中收集的这篇文章主要介绍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 命令

  1. Redis Script Load 命令用于将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。
  2. EVAL 命令也会将脚本添加到脚本缓存中,但是它会立即对输入的脚本进行求值。
  3. 在脚本被加入到缓存之后,通过 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 Script序言Redis Eval 命令Redis Evalsha 命令Redis Script Load 命令Redis Script kill 命令Redis Script Flush 命令Redis Script Exists 命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部