Redis学习笔记——第20章 Lua脚本

第20章 Lua脚本

20.1 创建并修改Lua环境

20.1.1 创建Lua环境

服务器创建一个新的基本的Lua环境

20.1.2 载入函数库

修改Lua环境,载入一些库函数

20.1.3 创建redis全局表格

全局变量,支持在Lua脚本中执行redis命令

20.1.4 使用redis自制随机函数来替换Lua随机函数

20.1.5 创建排序辅助函数

20.1.6 创建redis.pcall函数的错误报告辅助函数

20.1.7 保护Lua全局环境

可修改全局变量,但不可以添加或删除

20.1.8 将Lua环境保存在redisServer的Lua中

20.2 Lua环境协作组件

20.2.1 伪客户端

Lua脚本通过redis.call或redis.pcall执行redis命令,redis会创建伪客户端用于执行Lua脚本中的redis命令

20.2.2 lua_scripts字典

key:Lua脚本SHAI校验和
value:Lua脚本
(载入过的Lua脚本会被保存)

20.3 EVAL命令的实现

20.3.1 定义脚本函数

将脚本用Lua环境中的函数定义,函数名为SHAI校验和

20.3.2 将脚本保存到lua_scripts字典

20.3.3 执行脚本函数

20.4 Evalsha命令的实现

通过校验和查找脚本

20.5 脚本管理命令的实现

20.5.1 script flush

重建脚本字典及重建lua环境

20.5.2 script exists

检查校验和是否存在于lua脚本字典中

20.5.3 script load

创建对应lua函数并存入脚本字典,但与Eval不同,他不会执行

20.5.4 script kill

在配置了超时钩子时,若脚本执行已经超时,则会检测,是否有script kill或者shutdown命令,若有则执行

20.6 脚本复制

主服务器会把脚本传播到从服务器并执行

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值