lua

nvim中packer.lua的设置

Manu`s website | Configure Nvim with Lua: Plugin/package management (3) (manujsdev.com) local ensure_packer = function() local fn = vim.fn local insta ......
packer nvim lua

记坑-Redis集群模式使用Lua脚本的限制

有一种无奈叫测试环境好好的,一到线上就热烈的马,各种问题原形毕露 ##问题复现: ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array ......
集群 脚本 模式 Redis Lua

Lua(四)

Lua table(表) table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。 Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。 Lua table 是不固定大小的,你可以根据自己需要进行扩容。 Lua也是通过tab ......
Lua

Lua脚本(三)

Lua 字符串 字符串或串(String)是由数字、字母、下划线组成的一串字符。 Lua 语言中字符串可以使用以下三种方式来表示: 单引号间的一串字符。 双引号间的一串字符。 [[ 与 ]] 间的一串字符。 以上三种方式的字符串实例如下: string1 = "Lua" print("\"字符串 1 ......
脚本 Lua

在java中使用lua脚本操作redis

## 前言 众所周知,redis可以执行lua脚本,至于为什么要用lua脚本来操作redis,自行百度咯 ## 开始 ### Bean类 ```java package cn.daenx.myadmin.common.config.redis; import org.springframework. ......
脚本 redis java lua

redis-cli 使用lua脚本笔记

## 前言 redis可以执行lua脚本,具体怎么玩呢 先来讲一下最简单的方式,下一篇文章讲如何在java springboot里用 更为详细的资料请参考以下文章 https://blog.csdn.net/jiayibingdong/article/details/115186990 https: ......
脚本 redis-cli 笔记 redis cli

lua5.3字符串实现

lua字符串对象分为长字符串和短字符串,长度超过40的是长字符串对象,小于40的是短字符串对象,短字符串对象会被缓存到全局变量G的strt 哈希表中(数组+链表实现)。 字符串对外提供的创建接口 有 luaS_new(),luaS_newlstr(), luaS_createlngstrobj() ......
字符串 字符 lua5 lua

自己动手实现lua(二)指令集

高级编程语言虚拟机是对真实计算机的模拟和抽象。按照实现方式,虚拟机大致可以分为两类:基于栈(Stack Based)和基于寄存器(Register Based)。 Lua虚拟机则是基于寄存器的虚拟机(实际上Lua在5.0版之前使用的也是基于栈的虚拟机,不过从5.0版开始改成了基于寄存器的虚拟机)。 ......
指令 lua

【Redis】-使用Lua脚本解决多线程下的超卖问题以及为什么?

一.多线程下引起的超卖问题呈现1.1.我先初始化库存数量为1、订单数量为0 1.2.开启3个线程去执行业务 业务为:判断如果说库存数量大于0,则库存减1,订单数量加1 结果为:库存为-2,订单数量为3 原因:如下图所示,这是因为分别有6个指令(3个库存减1指令,3个订单数量加1指令)在redis服务 ......
线程 脚本 问题 Redis Lua

lua

Skywalking 监控nginx的方法 https://blog.csdn.net/qq_31725371/article/details/85226116 https://www.jianshu.com/p/30684f94d5e0 过程 安装必备软件: yum install -y gcc ......
lua

lua基础语法篇一

打印 print("hello world") 注释 单行注释 多行注释 -- 这是单行注释 --[[ 这是多行注释 ]] 赋值 s="Hello World" -- 多重赋值 a,b="String a","String b" -- 交换值,类似python a,b="String a","Str ......
语法 基础 lua

lua元表、元方法

lua元表、元方法 lua官方参考手册:https://www.runoob.com/manual/lua53doc/manual.html#2.4 一、总结: ☺ 1、普通的表,找不到了,或者无法进行运算的时候,考虑设置到它身上的元表的元方法 2、元表的本质:其实元表本质上就是普通的表,它只是在功 ......
方法 lua

自己动手实现Lua(一)

二进制chunk:一段可以被lua解释器执行的代码就叫做chunk(写的代码)。 预编译:为了获得更高的执行效率,Lua并不是直接解释执行chunk,而是先由编译器编译成内部结构(其中包含字节码等信息),然后再由虚拟机执行字节码。这种内部结构在Lua里就叫作预编译(Precompiled)chunk ......
Lua

Redis+lua 实现令牌桶限流算法

使用 lua := redis.NewScript(script) args[0] = strconv.Itoa(fillInterval) args[1] = strconv.FormatInt(time.Now().Unix()*1000, 10) res, err := lua.Run(con ......
令牌 算法 Redis lua

【Lua】VSCode 搭建 Lua 开发环境

前言 最近在找工作,基本所有的岗位都会问到 Lua(甚至拼 UI 的都要求会 Lua),咱能怎么办呢,咱也只能学啊…… 工欲善其事,必先利其器。第一步,先来把环境配置好吧! 当前适用版本: LuaBinaries 版本:5.4.2 VSCode 版本:1.77.3 文章最近更新日期:2023.04. ......
Lua 环境 VSCode

Lua5.1到Lua5.2的差异

Lua5.1到Lua5.2的差异 来源 https://zhuanlan.zhihu.com/p/96009862 版本差异 这一节列出Lua5.1到Lua5.2,以及Lua5.2到Lua5.3的版本差异。目前使用得最多的版本可能是Lua5.1这个版本,但是我很推荐将Lua升级到最新的5.3,因为5 ......
Lua5 Lua 差异

GG lua脚本菜单模板

常用写法如下,当然你也可以使用multiChoice或者说是choice配合multiChoice去使用。此处使用的是choice方法实现,是一个比较经典和常规的模板: function main() local m={ '功能一', '功能二', '功能三', '退出脚本' } local g=g ......
脚本 菜单 模板 lua GG

lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】

一、lua变量【 全局变量和局部变量和表中的域】 Lua 变量有三种类型:全局变量和局部变量和表中的域。 ▪ 全局变量:默认情况下,Lua中所有的变量都是全局变量。 ▪ 局部变量:使用local 显式声明在函数内的变量,以及函数的参数,都是局部变量。在函数外即使用local去声明,它的作用域也是当前 ......
数据 数据结构 变量 函数 lua

lua简单实现面向对象

--父类 local Person = { name = "XX" , age = 0 , PrintName = function(self) print("PersonName : "..self.name) end , new = function(self,name,age) obj = { ......
对象 lua

thinkphp:redis+lua实现短信发送频率限制(thinkphp v6.0.12LTS)

一,配置: .env中 [REDIS0] TYPE = redis HOST = 127.0.0.1 PORT = 6379 PASSWORD = 二,php代码: 1,lib\util\SmsRateUtil.php <?php namespace app\lib\util; //短信验证码发送频 ......
thinkphp 短信发送 频率 短信 redis

redis里使用lua脚本对hash里的数据进行排序

注意:本脚本只适用于数据量较少的集合进行排序,数据量太大会严重影响redis的性能。 local t = redis.call('hgetall', KEYS[1]); local arr = {}; for i, v in pairs(t) do if i % 2 == 0 then local ......
脚本 数据 redis hash lua

详解 APISIX Lua 动态调试插件 inspect

作者罗锦华,API7.ai 技术专家/技术工程师,开源项目 pgcat,lua-resty-ffi,lua-resty-inspect 的作者。 原文链接 为什么需要 Lua 动态调试插件? Apache APISIX 有很多 Lua 代码,如何在运行时不触碰源代码的情况下,检查代码里面的变量值? ......
插件 inspect 动态 APISIX Lua

基于OpenResty(ngx_lua)的长连接推送服务器

http://www.tuicool.com/articles/zYfAnea 最近实现一个二维码扫描登录的功能,当用户用移动设备扫描PC端页面的二维码之后,移动设备通过常规HTTP短连接向服务器获取认证数据,认证通过后,服务器向PC浏览器主动推送帐号相关信息以完成PC端页面的登录。 服务器主动向浏 ......
OpenResty ngx_lua 服务器 ngx lua

详解事务模式和Lua脚本,带你吃透Redis 事务

摘要:Redis事务包含两种模式:事务模式和Lua脚本。 本文分享自华为云社区《一文讲透 Redis 事务》,作者: 勇哥java实战分享。 准确的讲,Redis事务包含两种模式:事务模式和Lua脚本。 先说结论: Redis的事务模式具备如下特点: 保证隔离性; 无法保证持久性; 具备了一定的原子 ......
事务 脚本 模式 Redis Lua

通过 lua 进行 nginx redis 访问控制

Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等。 1. 需求分析 1. Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等。 2. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下 ......
nginx redis lua

一文讲透 Redis 事务 (事务模式 VS Lua 脚本)

准确的讲,Redis 事务包含两种模式 : 事务模式 和 Lua 脚本。 先说结论: Redis 的事务模式具备如下特点: 保证隔离性; 无法保证持久性; 具备了一定的原子性,但不支持回滚; 一致性的概念有分歧,假设在一致性的核心是约束的语意下,Redis 的事务可以保证一致性。 但 Lua 脚本更 ......
事务 脚本 模式 Redis Lua

基于 Nginx&Lua 实现自建服务端埋点系统

前言 埋点数据一般取决于服务提供商想从用户身上获取什么信息。通常来讲,主要分为用户的基本属性信息和行为信息。用户的基本属性信息主要包括:年龄、性别、设备等。行为信息即用户的点击行为和浏览行为,在什么时间,哪个用户点击了哪个按钮,浏览了哪个页面,浏览时长等等的数据。 基本属性信息和行为信息又可以称之为 ......
系统 Nginx Lua amp

Redis事务与Lua脚本

Redis的事务没办法保证一致性,使用Lua脚本也不能保证。Lua脚本能保证一致性,而且比redis的事务实习要简洁健壮。 转载:https://maimai.cn/article/detail?fid=1538576512&efid=SQ3XsywteU9lIxil766Lxw ......
脚本 事务 Redis Lua

lua快速入门~在js基础上,知道Lua 和 Js 的不同即可

☺ lua 和 javaScript 差不多的,就是一些语法的细节不同,学过js,再注意一下下面的细节,就能上手了~ 快速入门,可以直接看一下菜鸟教程的lua:https://www.runoob.com/lua/lua-tutorial.html Lua 和 Js 的不同 Lua 概述 Lua概述 ......
基础 lua Lua Js

redis使用setnx+lua实现分布式锁

在Redis中,使用SETEX命令(对应RedisTemplate的setIfAbsent方法)可以实现一个最简易的分布锁。SETEX命令当key不存在的话,才会设置key的值,如果可以已经存在,就不做任何操作。 为了避免锁无法被释放,就给这个key(也就是锁)设置一个过期时间。 为了保证解锁操作的 ......
分布式 redis setnx lua