LeanCache 指南
LeanCache 使用 Redis (3.0.x)来提供高性能、高可用的 Key-Value 内存存储,主要用作缓存数据的存储,也可以用作持久化数据的存储。它非常适合用于以下场景:
- 某些数据量少,但是读写比例很高,比如某些应用的菜单可以通过后台调整,所有用户会频繁读取该信息。
- 需要同步锁或者队列处理,比如秒杀、抢红包等场景。
- 多个云引擎节点的协同和通信。
下图为 LeanCache 和云引擎配合使用的架构:

恰当使用 LeanCache 不仅可以极大地提高应用的服务性能,还能降低成本,因为某些高频率的查询不需要走存储服务(存储服务按调用次数收费)。你可以在 leanengine-nodejs-demos 中找到一些有关 LeanCache 的示例:
- associated-data 缓存关联数据
- leaderboard 实现排行榜
- limited-stock-rush 实现秒杀抢购
- redlock 实现分布式锁
主要特性
- 高性能:接近 7 万的 QPS
- 高可用:基于 AOF 持久化 的 Master-Slave 主从热备份。
- 在线扩容:在线调整容量,数据平滑迁移。
- 多实例:满足更大容量或更高性能的需求。
创建实例
在云服务控制台 > 云引擎 > LeanCache (Redis)页面点击创建实例即可创建新实例。
LeanCache 实例一旦生成,就开始计费,因此请认真对待该操作。
创建实例时可设置的参数有:
- 实例名称:最大长度不超过 32 个字符,限英文、数字、下划线,只能以字母开头。每个开发者账户下 LeanCache 实例名称必须唯一。
- 实例容量:可选 128 MB、256 MB、512 MB、1 GB、2 GB、4 GB、8 GB。
- 删除策略:内存满时对 key 的删除策略,默认为
volatile-lru,更多选择请参考 数据删除策略。
创建好的实例会在控制台显示基本信息,包括实例名称、创建时间、运行状态、当前连接数、已用容量、访问地址、数据删除策略、Redis 版本。 点击调整容量按钮可以扩容或缩 容。 点击管理共享按钮可以查看可以访问该 LeanCache 实例的应用,
数据删除策略
目前我们支持如下几种策略:
| 策略 | 说明 |
|---|---|
noeviction | 不删除,当内存满时,直接返回错误。 |
allkeys-lru | 优先删除最近最少使用的 key,以释放内存。 |
volatile-lru | 优先删除设定了过期时间的 key 中最近最少使用的 key,以释放内存。 |
allkeys-random | 随机删除一个 key,以释放内存。 |
volatile-random | 从设定了过期时间的 key 中随机删除一个,以释放内存。 |
volatile-ttl | 从设定了过期时间的 key 中删除最老的 key,以释放内存。 |
请注意,如果所有的 key 都不设置过期时间,那么 volatile-lru、volatile-random、volatile-ttl 这三种策略会等同于 noeviction(不删除)。更详细的内容请参考 Using Redis as an LRU cache。
LeanCache 实例一旦生成后,该属性不可修改。
删除实例
在云服务控制台 > 云引擎 > LeanCache (Redis)页面的每个实例卡片中,点击删除按钮即可删除实例。
删除其他应用共享的实例