Lua脚本的基本使用
使用Lua脚本的好处
- 一次性发送多个命令,减少网络开销。(是多个reids命令的集合,不用每次都去建立连接)
- 原子性 (redis会将这个lua脚本认为是一个整体去执行,不会被打断,所以保证原子性)
- lua 文件复用 (命令非常多,可以放在一个文件中,这样其他的redis也可以调用,使其复用)
基本用法
127.0.0.1:6379> eval "return 'hello world'" 0
"hello world"
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> eval "return redis.call('set',KEYS[1],ARGV[1])" 1 HZ 2222
OK
127.0.0.1:6379> keys *
1) "HZ"
127.0.0.1:6379> get hz
(nil)
127.0.0.1:6379> get HZ
"2222"
127.0.0.1:6379>
lua文件的用法
[root@iZ2ze09u9vrxaf1z3n8oomZ bin]# ls
dump.rdb redis-benchmark redis-check-rdb redis-sentinel
hz.lua redis-check-aof redis-cli redis-server
[root@iZ2ze09u9vrxaf1z3n8oomZ bin]# ./redis-cli --eval hz.lua 0
"22222222222"
[root@iZ2ze09u9vrxaf1z3n8oomZ bin]# vim hz.lua redis.call('set','hz','22222222222')
return redis.call('get','hz')
对lua脚本生成摘要
127.0.0.1:6379> script load "return 'hello world'" //生成摘要
"5332031c6b470dc5a0dd9b4bf2030dea6d65de91"
127.0.0.1:6379> evalsha "5332031c6b470dc5a0dd9b4bf2030dea6d65de91" 0 //通过摘要执行命令
"hello world"
127.0.0.1:6379>
如果lua脚本出现了死循环怎么办?
新打开一个客户端,使用 script kill 命令停止
Lua脚本的基本使用相关推荐
- 在windows程序中嵌入Lua脚本引擎--编写自己的Lua库
在<在windows程序中嵌入Lua脚本引擎--建立一个简易的"云命令"执行的系统>一文中,我提到了使用Lua的ffi库,可以让我们像写C代码一样写lua程序.这是个非 ...
- 在windows程序中嵌入Lua脚本引擎--建立一个简易的“云命令”执行的系统
在<在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎>开始处,我提到某公司被指责使用"云命令"暗杀一些软件.本文将讲述如何去模拟一个 ...
- 在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎
前些天听到一个需求:某业务方需要我们帮忙清理用户电脑上的一些废弃文件.同事完成这个逻辑的方案便是在我们程序中加入了一个很"独立"的业务逻辑:检索和删除某个程序产生的废弃文件.试想, ...
- Java中使用LUA脚本语言
Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ieru ...
- JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏
该程序是基于07年底写的一个J2ME小游戏 俄罗斯方块,将全部逻辑绘制都放到LUA脚本里来做,J2ME方面仅作一个绘制库来使用! 建立J2ME程序这里就不说了, 详见我的BLOG http://blo ...
- Lua脚本语言快速入门手册
学了两天Lua语言,感叹其短小精悍,上手极快,语法还很舒服,不错!整理下学习过程中经常用到的基础知识,共勉! Lua用法简述 Lua语言是在1993年由巴西一个大学研究小组发明,其设计目标是作为嵌入式 ...
- 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用
2019独角兽企业重金招聘Python工程师标准>>> 在Lua第三篇中介绍了,如何在cocos2dx中使用Lua创建自定义类供Lua脚本调用使用,当时出于Himi对Lua研究不够深 ...
- Redis Lua脚本中学教程(下)
在中学教程的上半部分我们介绍了Redis Lua相关的命令,没有看过或者忘记的同学可以步行前往直接使用机票Redis Lua脚本中学教程(上).今天我们来简单学习一下Lua的语法. 在介绍Lua语法之 ...
- 深入分析 Redis Lua 脚本运行原理
Redis 提供了非常丰富的指令集,但是用户依然不满足,希望可以自定义扩充若干指令来完成一些特定领域的问题.Redis 为这样的用户场景提供了 lua 脚本支持,用户可以向服务器发送 lua 脚本来执 ...
- Spring Redis中使用Lua脚本实现高并发原子操作
1. 前言 在上一文中我对 Lua 语言的一些简单的语法及其在 Redis 中的操作进行了介绍,但是在 Java 开发中我们还需要进一步的学习才能使这种技术落地.今天就结合Spring Data Re ...
最新文章
- Swift 条件编译,编译标记
- JVM系列三:JVM参数设置、分析
- 面试官再问高并发,求你把这篇发给他!
- 全球及中国海洋工程装备行业产值规模价值及投资风险预警报告2021-2027年版
- VTK:Rendering之Shadows
- C#LeetCode刷题之#653-两数之和 IV - 输入 BST(Two Sum IV - Input is a BST)
- Octavia API接口慢问题排查引发的思考
- mysql练习(重)
- vue图片插入与设置夜间模式/动态过渡
- 36 万美元套利!3 步骤揭秘黑客 DeFi 闪电贷全过程
- 服务器重置密码后无法启动不了怎么办,Windows Server 2008 R2 忘记密码的处理方法...
- 搭建 sock5代理服务器
- Linux:为什么性能工具需要 BPF 技术
- 图解R树的原理及相关操作
- Fiddler Everywhere 3.2.1 Crack
- 如何用VB开发游戏外挂
- matlab图像身高测量,基于Kinect景深图像的快速身高和体重测量方法
- 【Hexo搭建个人博客】(八)添加背景效果(点击鼠标显示红心并浮现社会主义核心价值观)
- (statistic)你所不知道的P值--对统计学的批判
- 奇技淫巧(二)—— 不使用中间变量交换两个值