前言
最近在看redis的lua,看了官网资料和网上一些文章,整理了lua的相关内容,希望对大家有帮助。
目录
0. redis中运行lua的流程的正常流程
1.redis中的lua概要信息
1.1 lua中调用redis命令
1.2 redis数据结构与lua数据结构对应关系
1.3 EVAL和EVALSHA
1.4 脚本缓存
1.5 脚本命令
1.6 其他约定
1.6.1 全局变量保护
1.6.2 Select 使用
1.6.3 redis中lua脚本内置的lib
2.lua的脚本复制
2.1 whole scripts replication(仅脚本复制)
2.2 script effects replication(脚本影响复制Redis 3.2以后支持)
2.3 lua脚本中的可选复制命令
3. redis中lua脚本的debug
3.1 lua脚本中记录日志
3.2 Lua debugger 简要说明( Redis 3.2 提供)
3.2.1 LDB简介
3.2.2 快速入门
4. lua脚本执行超时处理
4.1 设置超时时间
4.2 脚本执行超时后处理方式
5. RedisTemplate调用lua脚本示例
6. 参考资料
0. redis中运行lua的流程的正常流程
1.redis中的lua概要信息
1.1lua中调用redis命令
在lua脚本中以2种方式调用redis的命令
lua中调用redis的方式 | 对异常处理的方式 |
redis.call | 遇到异常将抛出lua error |
redis.pcall | 会将错误信息进行包装,以lua的table类型返回。 |
2个工具函数
redis.error_reply() 返回一个仅包含err元素的table
redis.status_reply()返回一个仅包含ok元素的table
1.2redis数据结构与lua数据结构对应关系
Redis数据结构 | lua数据结构 |
integer | number |
bulk | String |
multi bulk | table |
status | lua的table中有一个ok做对应 |
error | lua的table中有一个err做对应 |
Nil bulk, Nil multi |