LeanCache 是为云引擎用户提供的高性能、高可用的内存存储服务。与我们以往的数据存储服务相比,它不仅能够处理更多的并发连接和请求数,极大地提高应用性能,而且还能降低数据存储的使用成本。像秒杀、抢红包、数据量少但读写比例很高等场景都适合使用 LeanCache 。
在云引擎中访问一个容量为 2GB 的 LeanCache 实例,每秒可以处理将近 70,000 次的请求,而一般情况下访问存储服务的请求峰值为 320 次/秒,相差 200 多倍。除了更高的性能, LeanCache 还可以帮助用户节省费用。因为交由 LeanCache 处理的请求不计入存储 API 调用次数,所以用户可以把一些高频率的查询从按 API 调用次数收费的存储服务分流至 LeanCache 上,通过降低总的 API 调用次数来减少费用。
LeanCache 基于 Redis 技术,同时支持缓存数据存储和持久化存储,可以在不中断服务的情况下在线扩容。同时, LeanCache 支持在多个应用之间共享数据,所以如果多个云引擎节点需要协同工作和通信, LeanCache 也是正确的选择。
进入 控制台 >(选择应用)> 存储 > 云引擎 > LeanCache,点击 创建节点 来创建新的 LeanCache 节点。如下图所示:
创建实例时可选参数:
LeanCache 目前仅支持通过云引擎访问。实例创建完毕后,云引擎应用就可以从环境变量中获取 REDIS_URL_<实例名称>
的 Redis 连接字符串,通过该信息连接并使用 LeanCache 。
LeanCache 实例在开发者账户内全局可见,并不与某个应用固定绑定。所以在某个应用内创建的 LeanCache 实例,其他应用也一样可以使用。对于某些使用场景,譬如 O2O 行业的用户端和管理端,或者网络租约车平台的乘客端和司机端,需要多个应用共享同一份数据,这一点将会非常有用。
LeanCache 实例使用 Redis Master-Slave 主从热备,有多个观察节点每隔 1 秒钟观察一次主节点的状态。如果「主节点」最后一次有效响应在 5 秒之前,则该观察节点认为主节点失效。如果超过总数一半的观察节点发现主节点失效,则自动将「从节点」切换为主节点,并会有新的从节点启动重新组成主从热备。这个过程对应用完全透明,不需要修改连接字符串或者重启,整个切换过程应用只有几秒钟的访问中断。
与此同时,从节点还会以 AOF 方式 将数据持久化存储到可靠的中央文件中,每秒刷新一次。如果很不巧主从节点同时失效,则马上会有新的 Redis 节点启动,并从 AOF 文件恢复,完成后即可再次提供服务,并且会有新的从节点与之构成主从热备。
LeanCache 服务现在已经上线,我们将从 2015 年 12 月 7 日 开始对它收费。结算方式为按天扣费,使用时间不足一天按一天收费。因为用户可能需要调整容量,所以为了方便计算,我们按照用户当天所使用的「最大容量」来结算,次日凌晨从账户余额中扣款。同时,为了防止 LeanCache 节点被随意创建而浪费不必要的服务器资源,我们要求开发者账户留有足够的余额。
若想了解更多技术细节,请阅读 《 LeanCache 使用指南》。