简介

Redis 从 2.6 版本开始引入使用 Lua 编程语言进行的服务器端脚本编程功能,这个功能可以让用户直接在 Redis 内部执行各种操作,从而达到简化代码并提高性能的作用。 P248

在不编写 C 代码的情况下添加新功能 P248

通过使用 Lua 对 Redis 进行脚本编程,我们可以避免一些减慢开发速度或者导致性能下降对常见陷阱。 P248

将 Lua 脚本载入 Redis P249
  • SCRIPT LOAD 命令可以将脚本载入 Redis ,这个命令接受一个字符串格式的 Lua 脚本为参数,它会把脚本存储起来等待之后使用,然后返回被存储脚本的 SHA1 校验和
  • EVALSHA 命令可以调用之前存储的脚本,这个命令接收脚本的 SHA1 校验和以及脚本所需的全部参数
  • EVAL 命令可以直接执行指定的脚本,这个命令接收脚本字符串以及脚本所需的全部参数。这个命令除了会执行脚本之外,还会将被执行的脚本缓存到 Redis 服务器里面

由于 Lua 的数据传入和传出限制, Lua 与 Redis 需要进行相互转换。因为脚本在返回各种不同类型的数据时可能会产生含糊不清的结果,所以我们应该尽量显式的返回字符串。 P250

我们可以在 官方文档 中找到 Redis 和 Lua 不同类型之间的转换表:

<

Redis 实战 —— 14. Redis 的 Lua 脚本编程相关推荐

  1. Redis实战 - 09 Redis BitMaps 实现用户签到,统计签到次数,统计签到情况等功能

    文章目录 1. 需求分析 2. 设计思路 3. 用户签到和统计连续签到的次数 1. 签到控制层 SignController 2. 签到业务逻辑层 SignService 3. 测试 4. 按月统计用 ...

  2. redis(二)redis实战 使用redis进行文章的排序

    2019独角兽企业重金招聘Python工程师标准>>> http://www.beckbi.cn/?p=172 redis实战使用redis进行文章的排序 转载于:https://m ...

  3. 【Redis】14.Redis高级数据类型Bitmaps、HyperLogLog、GEO

    [Redis]14.Redis高级数据类型Bitmaps.HyperLogLog.GEO Bitmaps:用比特位进行快速的状态统计 Bitmaps基本操作 Bitmaps不是一个新的数据类型,而是s ...

  4. Redis实战之Redis + Jedis

    用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis! 相关链接: Redis实战 Redis实战之Redi ...

  5. 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(三)

    [2G模组Air202开发]Lua脚本编程实现MQTT协议连接Tlink平台(三) 整体思路: 在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air2 ...

  6. 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(五)

    [2G模组Air202开发]Lua脚本编程实现MQTT协议连接Tlink平台(五) 整体思路: 在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air2 ...

  7. Redis:事务、管道、Lua脚本

    1. Redis事务定义 Redis中的事务(transaction)是一组命令的集合.事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行. 事务的原理是先将属于一个 ...

  8. redis中的事务、lua脚本和管道的使用场景

    https://blog.csdn.net/fangjian1204/article/details/50585080 事务 redis中的事务并不像mysql中那么完美,只是简单的保证了原子性.re ...

  9. java redis 商品秒杀_redis编写lua脚本实现商品秒杀

    编写lua脚本 --是否秒杀 local hasBuy = redis.call('sismember',KEYS[1],ARGV[1]) if hasBuy~=0 then return 0; en ...

最新文章

  1. 服务器给站点读写权限,IIS7目录权限设置的问题详解Windows服务器操作系统 -电脑资料...
  2. 战疫期,钉钉如何扛起暴增百倍的流量?
  3. 操作无法完成因为已经在mysqld.exe上打开_金蝶KIS软件操作技巧/百问百答(下)...
  4. MySQL修改配置 区分大小写
  5. 2018福大软工实践第八次作业
  6. 完美的xslt数值函数与字符串函数
  7. 劲爆!Java 通用泛型要来了。。
  8. Matlab求加权平均数,MATLAB Accumarray加权平均值
  9. 恢复计算机到以前时间点,电脑恢复到某个时间点
  10. 二叉搜索树插入算法C#演示的代码
  11. memcached面试专题
  12. SMAA算法详解 - SMAASearchYUp(Down)
  13. 检测屏幕.html,15款html5响应式网站跨屏幕测试工具
  14. 软件工程毕业,在北京工作两年后再来理解《人月神话》
  15. React学习资源汇总
  16. camera相关术语
  17. 制作Wi-Fi Ducky远程HID攻击设备
  18. 为什么传统的婚姻和家庭会消解?
  19. 应届生的身份有什么好处
  20. PCB和软件设计经验(1)

热门文章

  1. python 适合做什么生意赚钱投资小_如何用Python爬虫投资房产,走向人生巅峰?...
  2. 大数据数据集成和开发社招笔试题
  3. DCDC开关电源学习BUCK电路(2)
  4. 大数组合数取模(逆元+打表)
  5. 数据库中AND、OR、IN、NOT、BETWEEN、NULL操作符
  6. 2022认证杯(小美赛)C题详细思路
  7. 转战C#---day1
  8. 新版springcloud使用gateway+nacos,服务报错503 Service Unavailable
  9. Fundamental Components Of An Event-Driven Archi...
  10. javascript tyy的执行顺序很怪异