第六章 打造一套缓存系统
概要:
- 设计一个简单的缓存服务
- 建立基本的应用结构与监督结构
- 实现缓存的主要功能
6.1 故事背景
由于页面响应速度慢,Erlware项目需要给Web服务器添加本地缓存来提速。查询软件包列表的同时,软件包服务器返回的列表将以URL为键入缓存;当用户访问同一个URL时,可以直接从缓存中取出软件包列表,可迅速完成页面渲染。架构如图6-2
该缓存气筒的基本功能大体包括:
- 缓存的启动和停止;
- 向缓存中添加键/值对;
- 查询与给定的键相对应的值;
- 更新与给定的键相对应的值;
- 删除键/值对;
6.2 缓存的设计
这个简易缓存存储的是键/值对,其中键与键之间不得重复,并且只能映射到一个值。这个设计背后的核心思想是为写入缓存的每一个值都分配一个独立的存储进程,再将对应的键映射至该进程。为每一个值分配一个进程,因为缓存中的值相对独立,各有各的生命周期。同时,Erlang本身对大量轻量级进程提供了良好的支持。
图6-3展示该简易缓存的各个组成部分
一共需要创建5个模块,
6.3 创建OTP应用的基本骨架
应用结构的搭建分为一下几个步骤