执行脚本1

脚本使用Lua解释器来执行脚本,常用命令为eval
(1)eval script numkeys key1 key2 arg1 arg2
--eval 命令将脚本script添加到脚本缓存中,但是会立即执行
--KEYS,ARGV必须大写
--‘set‘ ‘ok‘ 必须是单引号
--script可以是lua脚本,也可以是脚本地址
--redis.call()可以调用redis命令,redis.pcall()也可以
--{}在lua里是指数据类型table,类似数组。

eval "redis.call(‘set‘,KEYS[1],ARGV[1]);redis.call(‘set‘,KEYS[2],ARGV[2]);return ‘ok‘;" 2 name age qiao 18
eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 name age qiao 18

(2)evalsha sha1 numkeys key1 key2 arg1 arg2
--script load :将脚本script添加到脚本缓存中,并不立即执行该脚本,如果给定的脚本已经在缓存中存在了,那不执行任何操作
--evalsha:根据给定的sha1校验码,执行缓存在redis中的lua脚本
--脚本可以在缓存中保存无限长的时间,知道执行 script flush命令为止

script load "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" --"a42059b356c875f0717db19a51f6aaca9ae659ea"
evalsha a42059b356c875f0717db19a51f6aaca9ae659ea 2 name age qiao 18

(3)script exists sha1
--校验脚本是否已被保存到缓存中
--返回一个列表,包含0和1,0表示没有,反之
script exists a42059b356c875f0717db19a51f6aaca9ae659ea

(4)script flush
--清楚所有脚本缓存
--返回总是ok

(5)script kill
--杀死正在执行的脚本,当且仅当该脚本没有执行任何写操作
--杀死时间过长的脚本,例如进入死循环
--客户端会从eval命令阻塞中退出,返回一个错误

原文地址:https://www.cnblogs.com/hapyygril/p/12544206.html

时间: 2024-10-24 18:33:33

执行脚本1的相关文章

编写脚本标准的格式与执行脚本

编写脚本标准的格式: 第一行:#!/bin/bash  表示定义该脚本是一个shell脚本(固定格式) 第二行:#              这里的#属于注解,没有任何意义,shell 不会解析它. 第三行:#说明一下该脚本的作用 第四行:#写一下脚本的author(作者) 编写时间 第五行:写脚本内容 二三四行可有可无,建议养成好习惯. 要执行脚本(例如:first_shell.sh): (1)   加执行权限: chmod o+x first_shell.sh 运行脚本:./first_sh

Crontab执行脚本中的ssh命令访问被拒绝

我们经常会通过crontab来执行定时任务,通常生产环境中在不同主机直接进行登录是通过ssh来连接的.比如我们通过在备份服务器上设定定时任务,定期通过scp(使用SSH的远程拷贝命令)来拷贝远程服务器的数据到备份服务器上,这也是我遇到的一个事情. 环境描述: 脚本与定时任务: 定时任务设置如下: 无论是否执行成功,都把信息输出到2222.txt中 脚本内容如下: 我这里仅用ssh命令来测试,实际上这个命令如果可以正常执行的话,你执行scp命令也一样 #!/bin/bash ssh -v 192.

【MYSQL】在脚本中使用变量-执行脚本时传参

在shell脚本里可以定义变量,并在执行脚本时任意传参. #!/bin/bashdb_name=$1 #将第一个值赋给db_name变量sql_name=$2 #将第二个值赋给sql_name变量mysql -uroot -p123456 -h192.168.227.129 $db_name < $sql_name 在执行shell脚本时,在执行命令后面直接传参即可 ./sqlrecovery jinqy jinqy.sql

在Powershell中禁止执行脚本

在Powershell中执行脚本时,有如下报错: 无法加载文件 F:\script\1.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing". 所在位置 行:1 字符: 8 + .\1.ps1 <<<< + CategoryInfo          : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeExc

python中获取执行脚本路径方法

1.sys.path[0]:获取执行脚本目录绝对路径 #每次执行脚本时,python会将执行脚本目录加入PYTHONPATH环境变量中(sys.path获取) #!/usr/bin/python3 import os import sys print(sys.path) print(sys.path[0]) 执行结果: [[email protected] tmp]# ./py_test1/pytest24.py ['/tmp/py_test1', '/usr/local/lib/python3

执行脚本传入参数

执行脚本传入参数具体用在什么地方?

Shell执行脚本

Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命令执行完. 如下例子: 第一种执行方式:chmode+x script.sh 执行过程: Shell会fork一个子进程并调用exec执行./script.sh这个程序,exec系统调用会把子进程代码段替换成./script.sh程序的代码段,exec有一种机制,如果要执行的是一个文本文件,并且第一

2.3-命令批量执行脚本

命令批量执行脚本,同样需要两个脚本来实现:1 exe.expect 2 exe.sh 3 ip.list    IP列表 cat exe.expect #!/usr/bin/expect set host [lindex $argv 0]            #第一个参数,IP列表 set passwd "hd792310" set cm [lindex $argv 1]              #第二个参数,cm要执行的命令 spawn ssh [email protected]

[BASH]获取执行脚本的路径

SCRIPT=$(readlink -f "$0") #当前执行脚本的真实路径,兼容软链接 basedir=$(dirname "$SCRIPT") #当前执行脚本的所在目录

Oracle批量执行脚本文件

以下是Oracle批量执行脚本文件的步骤和方法 1.创建脚本文件(xx.sql): 例如文件CreateTable Create table tb1( id varchar2(30), Name varchar2(50) ); Commit; / 可以创建多个,但是要注意语句之间要以分号结尾,同时注意语句内尽量不要有空行,因为空行的时候,在批量执行时可能会报错. 例如创建表时 create table t( id varchar2(20), Name varchar2(30) ); 上面这个文件