之前一直没理清lua_gettable和lua_settable的使用,今天理清了,顺便就做下笔记了。 1.lua_gettable void lua_gettable (lua_State *L, int index);把t[k] 值压入堆栈,这里的 t 是指有效索引 index 指向的值,而 k 则是栈顶放的值。这个函数会
转载 2024-06-13 20:41:56
248阅读
抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。 因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。 另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工修复下数据是很简单的事。而像淘宝这么多商品,要是每一个都存在着修复数据的风险,那如果出故障了则很麻烦。淘
(1)lua 和 C++之间的交互的基本知识:       lua 和 C++ 之间的数据交互通过堆栈进行,栈中的数据通过索引值进行定位,(栈就像是一个容器一样,放进去的东西都要有标号) 其中栈顶是-1,栈底是1,也就是第 1 个入栈的在栈底;也可以这么说:正数表示相对于栈底的位置(位移),负数表示相对于栈顶的位置(位移); (2)计算
# Lua Redis Get 方法实现 ## 概述 在本文中,我将向你介绍如何使用 Lua 语言和 Redis 数据库实现 Redis 的 GET 方法。首先,我会给你一个关于整个实现过程的流程图,然后逐步解释每一步需要做什么,并提供相应的代码示例。 ## 流程图 下面是实现 "Lua Redis Get 方法" 的流程图: ```mermaid graph TD A(连接到 Redi
原创 2023-11-06 08:45:22
116阅读
lua:local access_token = ngx.var.cookie_SGAccessTokenif access_token then ngx.header["Set-Cookie"] = "SGAccessToken="..access_token.."; path=/;Max-Age=3000"endnginx add_header Set...
原创 2023-04-11 06:48:29
154阅读
本文转载于笨木头的博客,嘿嘿,向大神学习这篇文章主要介绍了Lua中强大的元方法__index详解,本文着重讲解了使用__index元方法实现table的继承,需要的朋友可以参考下 今天要来介绍比较好玩的内容——__index元方法1.我是备胎,记得回头看看咳咳,相信每一位女生都拥有或者不知不觉中拥有了一些备胎,啊,当然,又或许是成为过别人的备胎。没有备胎的人,就不是完整的人生。(小若:停
Lua监听C#消息概述消息基类 概述在项目中有时候会出现需要Lua监听C#消息的情况,如进入游戏,我们将进入游戏的代码放在C#,将游戏中的界面代码放在Lua中。选择在C#中调用lua代码的方式是非常不建议的,这样会提高代码的耦合性。那么我们能想到的是与之前一篇博客中提到的一样,使用事件消息来进行通信。消息基类关于消息我们有很多种,比如从Lua到C#的,C#之间的,LuaLua的。那么我们就需要
# 使用Redis Lua实现“Get”操作类型的详细指南 Redis是一种高性能的开源NoSQL数据库,Lua是一种轻量级脚本语言,可以被用来在Redis服务器上执行复杂的操作。通过将Lua脚本嵌入Redis,我们可以轻松地实现更复杂的逻辑。 本文将逐步介绍如何实现使用Redis Lua脚本进行“get”操作,特别是如何获取键的类型。整个流程可以总结为以下步骤: | 步骤 | 描述
原创 2024-10-10 07:03:49
32阅读
网上看到这篇文章,很喜欢这种分析思路,这里学习记录一下。最近小了解了下cookie. 以前觉得cookie无非就是一连串键值对, 在深入了解之后发现 远没自己想的那么简单, 自己果真太肤浅了….好吧, 这里主要探讨一下以下几个问题:如何正确设置cookiecookie的作用域以及超时时间第一方cookie以及第三方cookie为了获得简单直观的感受, 这里我们使用以下工具进行探索:openrest
转载 2024-02-26 20:16:03
243阅读
SpringBoot使用LUA解决Redis库存遗留问题前面,我的博客提到了怎么用Redis的乐观锁解决超卖问题。但是,使用乐观锁其实,有一个缺点,就是我们假设现在有2000次请求,并发数为200,此时的库存如果比较大的话,比如是500,那么,我们最后会发现,这2000次请求最后会有很多次因为乐观锁机制的影响导致的抢购失败。这个问题要解决,我们可以使用我们的LUA。 简单介绍一下,LUA是一个小巧
0x00 爬坑说明书 最近编写游戏的客户端逻辑,部分以Lua为主,介于使用的Lua的经验尚浅,也就边写边看《Lua程序设计》。书中有些知识点真的是过目即忘,发现Lua还是有一些坑,下面权当作是Lua的爬坑笔记。0x01 Lua的类型 最近一次在处理UGUI中ScrollView控件动态生成的对象时,利用动态生成的对象后缀来作为后续计算的索引。代码类似:function ConvertGameO
1.语法约定    Lua语句用分号结尾,不过如果不写分号,Lua也会自己判断如何区分每条语句     如:         a=1 b=a*2 --这样写没有问题,但不太好看。     建议一行里有多个语句时用分号隔开
转载 2024-02-28 20:05:47
135阅读
1.什么是UrlSearchParams根据我目前的了解,UrlSearchParams其实就是浏览器的原生构造函数,大部分时候我们用它来实例化一个UrlSearchParams对象,这个对象可以使用以下一些目前我所知道的方法let obj = new URLSearchParams(); obj.append("string","小明"); // 添加属性 obj.get("string
请求分为1.请求方法(Request Method)2.请求链接(Request URL)3.请求头(Request Headers)4.请求体(Request Body) 1.请求方法(Request Method)常用方法:GET 和 POSTGET 和 POST请求方法的主要区别:(1)GET请求中的参数都包含在URL中,数据可以在URL中看到;而POST请求提交的数据并不包含在URL中,
转载 2024-04-03 15:26:00
157阅读
前两天生病了,一直没更新博客,以后我争取每天更新一篇,如果周六日没特殊情况的话也会照常更新。废话不多说,这篇就来讲讲lua中的元表。元表(metatable)是lua中一个很重要的概念,掌握元表可以让你有效的使用lua。每一个table都可以附加元表,元表是带有索引集合的表,它改变被附加表的行为。这句话可能听上去有点晕,那下面就让我们举例说明一下这个概念。例:t = {} -- 普通表 mt
转载 2024-05-11 22:49:12
35阅读
原理 ngx_lua本身不提供httpclient功能,但提供了ngx.location.capture接口。这个接口可以发送一个子请求(subrequest),并获取子请求的响应结果。子请求可以调用lua,或者返回文件,甚至通过proxy_pass访问另一个地址。关键就在这里!如果我们使用proxy_pass机制结合subrequest,不就能实现http接口请求了吗?且慢!一般来说,httpc
# 如何解决“redis lua get取不到值”的问题 ## 整体流程 首先,让我们通过以下表格来展示整个解决问题的流程: | 步骤 | 操作 | | ---- | ---- | | 1. | 编写 Lua 脚本,使用 `redis.call('get',KEYS[1])` 来获取 Redis 中的值 | | 2. | 调用 Redis 的 `eval` 命令执行 Lua 脚本 | | 3.
原创 2024-05-28 03:51:41
161阅读
特别提示:每个人导致的该报错的原因不一样。已经做过的排查:1.排查了地址池初始化问题2.排查了所有调用地方是否都关闭了3.排查了配置参数以上步骤排查完,程序还是会报错。通过 JedisPool 的 getNumActive 方法,知道连接数会一直增加通过在redis控制台输入client list,获得以下信息:每个字段含义如下: addr:客户端的地址和端口  fd:套接字所使用的文件
Lua 变量 变量在使用前,必须在代码中进行声明,即创建该变量。 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。 Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 -- test.lu
        在《在windows程序中嵌入Lua脚本引擎--建立一个简易的“云命令”执行的系统》一文中,我提到了使用Lua的ffi库,可以让我们像写C代码一样写lua程序。这是个非常令我们这些C程序员激动的事。但是我们使用ffi库写出来的程序往往比较大,因为我们可能要声明一些API的原型和结构体。比如我们看luajit的wiki中关于使用ffi调用ker
  • 1
  • 2
  • 3
  • 4
  • 5