• Redis作为一个非常成功的数据库,提供了非常丰富的数据类型和命令,使用这些,我们可以轻易而高效地完成很多缓存操作,可是总有一些比较特殊问题或需求需要解决,这时候可能就需要我们自己定制自己的 Redis 数据结构和命令。转载随意,请注明来源地址:https://zhenbianshu.github.io我们都知道 Redis 是单线程的,可是它怎么会有
  • 我们给游戏引擎设计了一个虚拟文件系统,可以挂接不同的文件系统实现,比如本地文件系统模块,内存文件系统模块,网络文件系统模块。比如前几天谈到的资源仓库,就是一个文件系统模块。这个虚拟文件系统是用 lua 编写的,这就有了一个小问题:lua 代码本身也是放在虚拟文件系统中的,那么就需要解决自举。这些代码很有可能需要从网络更新(网络文件系统模块),而网络模块也是 lua 编写的,代码同样放在这套文件系统内。这篇 blog 我想谈谈自举是怎样完成的。
  • 任何限流都不是漫无目的的,也不是一个开关就可以解决的问题,常用的限流算法有:令牌桶,漏桶。在之前的文章中,也讲到过,但是那是基于单机场景来写。之前文章:然而再牛逼的机器,再优化的设计,对于特殊场景我们也是要特殊处理的。就拿秒杀来说,可能会有百万级别的用户进行抢购,而商品数量远远小于用户数量。如果这些请求都进入队列或者查询缓存,对于最终结果没有任何意义,徒增后台华丽的数据。对此,为了减少资源浪费,减轻后端压力,我们还需要对秒杀进行限流,只需保障部分用户服务正常即可。
  • 本次更新带来了一些新功能,如新的Region支持、简单泛型支持、新的文档视图、Lua版本选择、新的注解、更好的代码提示,并且修复了部分已知BUG以及适配 IDEA2017.1 ~ IDEA2018.2。下载地址在线文档地址
  • OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台。我们知道开发 Nginx 的模块需要用 C 语言,同时还要熟悉它的源码,成本和门槛比较高。国人章亦春把 LuaJIT VM 嵌入到了 Nginx 中,使得可以直接通过 Lua 脚本在 Nginx 上进行编程,同时还提供了大量的类库(如:lua-resty-mysql lua-resty-redis 等),直接把一个 Nginx 这个 Web Server 扩展成了一个 Web 框架,借助于 Nginx 的高性能,能够快速地构
  • 最近在配合移动端调试的时候,被抓去debug一个在清除redis缓存之后才会出现的网关错误。于是打开服务器上的log定位到类似错误:该段代码的主要作用是在通过查询资料得知原因:
  • 从Redis 2.6 版本开始,内嵌支持 Lua 环境。通过使用语法:script:Lua脚本 。numkeys:key的参数个数。访问脚本获取key值:
  • 我打算就我们在开发客户端引擎框架时最近遇到的两个问题写两篇 Blog ,这里先谈第一个问题。我们的框架技术选型是用 Lua 做开发。和很多 C++ 开发背景(现有大部分的游戏客户端引擎使用 C++ 开发)的人的认知不同,我们并不把 Lua 作为一个嵌入式脚本来看待,而是把它当成一种通用语言来设计整个引擎框架。其实这更接近 HTML5 流行之后,用 javascript 设计游戏引擎框架:虽然 javascript 的虚拟机本身是用 C++ 开发的,但和游戏引擎相关的部分全部用 javascript 实现,
  • 最近在用一般的迭代器是在内部维护一个状态的(当前迭代的位置),但是 Lua 的迭代器是 Stateless(无状态的),这样的好处是可以重复多次迭代。不像 Python 的 Iterator 和 Iterable,如果多次迭代的话,需要从 Iterable 获得一个迭代器 Iterator。Lua 的迭代器需要循环的时候自己维护。每一次迭代,for 都会调用迭代器函数,传入的参数有 2 个,一个是无状态的、要迭代的对象,一个就是控制参数(迭代的状态,1 2 3 …)。
  • 目标是实现高并发的优惠券秒杀系统,项目地址:主要基于redis内嵌lua来实现库存的幂等性扣减,这块代码如下:
  • 到这一步 其实会出现错误的,有提示需要修改Makefile 给CFLAGS加上 -fPIC 选项 另外,为了使得Patch过后生成的so文件带版本号,还需要加上版本,最终生成的是如下的lua-5.1/src/Makefile的补丁继续执行make linux应该不会报错了,然后按照luadec的教程继续做完就可以了
  • 前置阅读(上篇):在上篇的分析中,我们分析了“隐蜂”挖矿木马的“Boot劫持”和“内核Rootkit”前两个关键部分,本篇中主要针对Ring3层的挖矿模块工作机制展开剖析。
  • 原文链接:作者:antirez译者:
  • 最近发布了一个跨平台的app开发框架Luakit(https://github.com/williamwen1986/Luakit) 。那怎么会想到做这样一个东西呢?这要先说一下我参与过的一些项目,和在项目中接触到的一些技术点和对项目开发体检了,因为Luakit是集合了几个重要技术才能做到用Lua脚本来实现跨平台app开发的。我主要参与的项目是QQMail的IOS版。在2017年下半年,由于机缘巧合,我参与开发了企业微信的一个分支版本,appstore上叫政务微信。QQMail的历史比较悠久了,在QQMa