当前位置: 首页 > news >正文

redis运维(十九)redis 的扩展应用 lua(一)

一  redis 的扩展应用 lua

redis如何保证原子操作

说明:引入'lua脚本',核心解决'原子性'问题

①  redis为什么引入lua?

lua脚本本身'体积小',启动'速度快'

②  redis引入lua的优势

小结: 类似'自定义redis命令'

③  redis中如何使用lua

④  EVAL

说明: '内置'的 lua解释器的版本是'5.1','避免'语法'兼容性'问题注意: 从哪个版本redis引入'对lua'的支持语法: EVAL script numkeys key [key ...] arg [arg ...]

细节: '多个lua语句'之间使用'分号'隔开

需求: 在'lua脚本'中获取redis'相关参数'

⑤  call和pcall函数

需求'1':查看call和pcall函数'报错'的'差异性'

需求'2':call'函数'的使用

补充:'()'是pcall函数的参数,里面的参数'类似'在redis-cli客户端中'执行命令','逗号变成空格'

⑥  lua和redis的数据转换

思考:'何时发生'数据类型转换?

redis使用的数据类型

--- 获取一个参数
local expire = ARGV[1]--- 由于lua脚本接收到参数都会'转为String',如果要使用'数字'类型,必须'强转'
tonumber(expire)

⑦  lua类型redis类型

说明:eval命令的'返回值'的类型强调:lua脚本的'return 返回值'被转换成'redis数据结构'

备注:redis数据类型和lua数据类型并'不完全'对应

备注: 希望lua返回一个'浮点数',那么应该将它作为一个'字符串',比如'ZSCORE'命令

⑧  redis数据结构转换为lua类型

1、lua通过'redis.call()'或者'redis.pcall()'函数执行redis命令2、者两个函数调用'返回值'被转换成了'lua数据结构'测试方法:首先在lua脚本中'执行redis命令',然后'type'下查看类型

http://www.lryc.cn/news/240668.html

相关文章:

  • SpringBoot——MVC原理
  • [Linux] shell条件语句和if语句
  • 【陈老板赠书活动 - 18期】-如何成为架构师这几本书推荐给你
  • chrome 插件 Mobile simulator
  • JavaScript框架 Angular、React、Vue.js 的全栈解决方案比较
  • 【Vue】核心特性(响应式)
  • ESP32 http 请求
  • 【C++】拷贝构造函数,析构函数详解!
  • qml ParticleSystem3D使用介绍
  • 集团投融资大数据平台解决方案
  • 深信服技术认证“SCSA-S”划重点:渗透测试工具使用
  • CCFCSP试题编号:201803-2试题名称:碰撞的小球
  • 《安富莱嵌入式周报》第327期:Cortex-A7所有外设单片机玩法LL/HAL库全面上线,分享三款GUI, PX5 RTOS推出网络协议栈,小米Vela开源
  • 面试官:【js多维数组扁平化去重并排序】
  • C#编程题分享(3)
  • Redis下载和安装(Windows系统)
  • MySQL数据库:开源且强大的关系型数据库管理系统
  • 如何在AD的PCB板做矩形槽孔以及如何倒圆弧角
  • SpringMVC日志追踪笔记整理
  • UML建模图文详解教程06——顺序图
  • 睡前随笔记录
  • 微服务学习|Feign:快速入门、自定义配置、性能优化、最佳实践
  • 使用【画图】软件修改图片像素、比例和大小
  • DevOps 事后分析
  • fastdfs-client-java-1.30 maven 打包安装
  • 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵
  • Linux驱动开发笔记(四):设备驱动介绍、熟悉杂项设备驱动和ubuntu开发杂项设备Demo
  • C/C++ 实现Windows注册表操作
  • nginx 模块相关配置及结构理解
  • 同时创建多个websoket(初始化多个连接、断开的重连、每个连接定时发消息、每个连接存储接收的数据(vuex或者pinia))