记一种不错的缓存设计思路
💡
原文中文,约900字,阅读约需2分钟。
📝
内容提要
本文讨论了在接口性能瓶颈下设计缓存以提高响应速度的方案。作者提出了两种缓存键设计方案,并选择了第二种方案作为更优选项。此外,根据实际业务场景,需要评估合适的缓存数据粒度和层次。
🎯
关键要点
- 文章讨论了在接口性能瓶颈下设计缓存以提高响应速度的方案。
- 假设接口格式为 GET /api?keys={key1,key2,key3,...}&types={1,2,3,...}。
- 请求该接口返回业务主键列表对应的业务对象列表,包含指定类型的信息。
- 业务主键可能的取值较多,type 取值范围为 1-10。
- 方案一是直接使用请求的所有参数作为缓存 key,返回内容为 value。
- 方案二是使用业务主键:表名作为缓存 key,表名里对应的记录作为 value。
- 方案二通过 mget 命令批量获取缓存信息,未命中的部分再查询数据库并放入缓存。
- 在选择方案时需考虑缓存命中率、数量、占用空间和刷新方便性。
- 方案二在此场景下具有明显优势。
- 需要根据实际业务场景评估合适的缓存数据粒度和层次。
➡️