我们需要一个分布式LRU缓存,但可以同时使用内存和磁盘。我们有一个大型数据集,它永久存储在磁盘上。从该数据集中,我们创建其他计算数据集,但仅在客户需要时才这样做。
由于这些辅助数据集是从持久性数据派生的,因此我们永远不需要永久保存这些派生数据。
我认为Redis可以将磁盘用作辅助LRU缓存,但是无法找到任何指向它的文档。看起来Redis只使用磁盘来保存整个缓存。我设想我们能够使用一堆Redis实例横向扩展。
如果Redis不能这样做,还有另一个系统吗?
答案 0 :(得分:1)
如果数据不适合内存,操作系统可以将其交换到磁盘。这称为虚拟内存。在这里您可以找到解释:http://redis.io/topics/virtual-memory
备注:您想要检索一些数据,在其上执行操作并获得一些中间结果。请检查您是否要分发处理,而不仅仅是数据。看看Apache Hadoop,特别是Apache Spark。
答案 1 :(得分:1)
在不改变客户端工作方式的情况下解决此问题的方法实际上不是使用Redis,而是使用Redis compatible database like Ardb,而supports LRU type on-disk caches又可以配置为使用LevelDB {{3 }}