晶体管 控制器 内存 运算器 主频 微架构
主页 正文

LinuxRedis启动方法与Lua脚本应用指南

linux环境redis怎么启动?

在Linux环境中启动Redis的主要方法有两种:直接启动并开始通过文本程序开始进行准备。
直接启动Redis时,请运行Redis服务器以启动服务。
虚拟端口号为6379。
如果您需要自定义端口,请使用redis-server-port6380。
如果警告过多使用内存,则必须将VM.OverCommitit_mimory = 1添加到系统的形成中,以确保背景中的保存过程不受内存限制的影响。
对于更全面的管理,建议使用纹理程序启动Redis。
首先,在REDIS指南的REDIS源指南 /tc/init.d目录中复制Redis-Init_script文本程序,然后将其重新命名为Redis_6379,其中6379是专用插座。
接下来,根据实际操作系统(Ubuntu)调整文本程序中的端口号设置。
接下来,为永久文件创建指南/etc/redis来存储构图文件和指南号/var/redis/port。
编辑构图文件,通常使用REDIS组成将其复制到ETC /REDIS目录,并根据端口还原。
重要的配置如下:守护程序用于在隐藏模式下运行redis; pidfile/var/run/redis_port nouber.pid定义了redis的pid文件; 确定DIR/VAR/REDIS/端口,确定稳定文件存储路径。
完成配置后,请使用Sodoupdate-rc.dredis_port号码默认设置REDIS服务以自动在启动下启动。

redis有脚本语言吗

; 您可以通过脚本模块发送多个请求,以减少网络延迟

原子操作。
Redis 将使用整个脚本作为一般执行,并且不会在其间插入其他命令。
因此,在写入过程中无需担心竞争条件和使用事务。

重用。
客户端发送的步骤将永久存在于Redis中。

调用Lua脚本语法:

$ Redis-cli-evalpath/to/Redis.luakeys [1] Keys [2], argv [1] argv [2] 。

keys[1]keys[2],是操作的按键,可以在LUA脚本中指定more并获取

LUA脚本中的argv[1]argv[algv[1] 2] ,参数,通过LUA脚本中的argv[1],argv[2]获取。

注意:

键和argv','两边的空格不能省略。

Redis 支持大多数标准 LUA 库

库名称

说明

基本提供一些基本函数

string 提供字符串操作的函数

Table 提供表操作的函数

Math 提供函数数学处理提供数学计算函数

Debug提供了用于调试的函数

在脚本中调用Redis命令

可以使用Redis.Call函数来调用Redis命令

Redis。
Call('Set', 'Foo', 'Bar') LocalValue = Redis.Call('Get', 'Foo') - 评估Redis命令的返回值是否为Redis命令。
P> Redis命令的返回值有5种类型,Redis.Call函数会将这5种类型的响应转换为对应的LUA数据类型。
值类型与LUA数据类型转换规则

Redis返回值类型

LUA数据类型

我们的整数响应数字类型

响应字符串 String 类型

响应表类型 string multiline 只是 OK 字段存储状态的信息)

错误响应表类型(只有一个错误错误信息 字段存储)

Redis Redis.PCall 函数也提供了与 Redis.Call 相同的功能。

您可以在脚本中使用return语句将值返回给客户端。
默认返回规则。
LUA 会自动转换为整数)

字符串类型 响应字符串

存储状态信息选项卡 错误信息) 错误响应

与脚本相关的命令

Eval "Lua-script" [Key ] [Arg ]

通过 Key 和 Arg 两类参数向脚本传递数据

注意:保留Eval命令 在脚本中根据参数键号。
当脚本不需要参数时,该参数不能省略(设置为0)

redis> eval "returnDis.call('set',keys[1], argv[1])" 1foobarokredis> getfoo "斜杠" bar"

evasha 命令

当脚本比较长时,如果每次调用脚本时,都会将整个脚本传递给Redis。
为了解决这个问题, Redis提供了Evasa命令,允许开发者通过脚本的sha1摘要来执行脚本

Redis在执行EVAL命令时会计算脚本的SHA1摘要,并记录到脚本缓存中。
/p>

虽然这个过程稍有问题,但幸运的是,很多编程语言的Redis客户端都会代替开发者来完成这个过程 Evasha 命令和 Eval 命令如果不能,则执行。

首先,计算脚本的sha1摘要,然后使用evasha命令执行脚本。

获取返回值。

scriptload“ lua-script”

添加缓存脚本,但不执行。

确定脚本是否存储在缓存中

scriptflush

清除redis缓存脚本以添加脚本脚本脚本cache的sha1摘要,它将可以永久维护,它不会消除它,但可以手动删除它,但可以手动删除它,但可以手动使用Scriptflush命令手动将其用于缓存。

scriptkill

强制执行当前脚本。
但是,如果编写当前执行的步骤以编写REDIS数据,则ScriptKill命令不会结束脚本的功能,以防止脚本的一部分。
脚本中的所有命令均执行或未执行。

REDIS脚本的执行是原子,也就是说,Redis在执行脚本期间不会执行其他命令。
所有命令必须等待脚本执行。
为了防止脚本的执行时间太长,因此REDIS无法提供服务(例如掉入死周期),REDIS提供了LUA Time-limit参数的最长执行时间限制了脚本和默认是5秒。
在脚本执行超过此限制之后,Redis将开始接受其他命令,但不会执行(以确保脚本原理,因为脚本现在尚未结束),但会返回“忙”错误>>>>>

热门资讯
汇编语言入门指南:从基础到实践学习路径
芯片与半导体的紧密关系
逻辑门门电路真值表
凯恩帝铣床圆弧编程技巧及G16极坐标指令应用指南
GPT硬盘启动问题解决方案及数据安全指南
杭州宋城冬天去好玩吗
8086汇编指令手册:全面解析与数据传输指令详解
MBR转GPT分区操作指南