什么是最有效的方式来服务大块的二进制数据?

我有一个由20 GB +数据组成的数组。 我想通过使用node.js的API来提供这些数据。 我的用户将在数组的任意位置请求一小段数据(不超过几kbs)。 而且,随着时间的推移,这些数据正在增长。 当然,我不能将20GB的数据加载到内存中,所以我需要的是一个数组类(具有readpush操作),它将数据存储在磁盘而不是内存中。 有没有这样的事情?