读多写多的服务中,实时交互类服务非常多,对数据的实时性要求也很高,用集中型缓存很难满足服务所需。为此,行业里多数会通过服务内存数据来提供实时交互服务,但这么做维护起来十分麻烦,重启后需要恢复数据。为了实现业务逻辑无重启的更新,行业里通常会使用内嵌脚本的热更新方案。 常见的通用脚本引擎是 lua,这是一个十分流行且方便的脚本引擎,在行业中,很多知名游戏及服务都使用 lua 来实现高性能服务的定制化业务功能,比如 Nginx、Redis 等。 把 lua 和我们的定制化缓存服务结合起来,即可制作出很多强大的功能来应对不同的场景。由于 lua 十分节省内存,我们在进程中开启成千上万的 lua 小线程,甚至一个用户一个 LState 线程对客户端提供状态机一样的服务。 用上面的方法,再结合 lua 和静态语言交换数据相互调用,并配合上我们的任务管理以及各种数据驱动,就能完成一个几乎万能的缓存服务