Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching Redis能否将磁盘用作LRU缓存的一部分?_Caching_Redis_Lru - Fatal编程技术网

Caching Redis能否将磁盘用作LRU缓存的一部分?

Caching Redis能否将磁盘用作LRU缓存的一部分?,caching,redis,lru,Caching,Redis,Lru,我们需要一个分布式LRU缓存,但它可以同时使用内存和磁盘。我们有一个大数据集,永久存储在磁盘上。从该数据集,我们创建其他计算数据集,但仅当客户需要时 由于这些辅助数据集是从持久数据中派生出来的,因此我们永远不需要永久保存这些派生数据 我原以为Redis可以将磁盘用作辅助LRU缓存,但却找不到任何相关文档。Redis似乎只使用磁盘来持久化整个缓存。我设想我们将能够通过一堆Redis实例横向扩展 如果Redis无法做到这一点,是否还有其他系统可以做到这一点?如果数据无法放入内存,操作系统可以将其交换

我们需要一个分布式LRU缓存,但它可以同时使用内存和磁盘。我们有一个大数据集,永久存储在磁盘上。从该数据集,我们创建其他计算数据集,但仅当客户需要时

由于这些辅助数据集是从持久数据中派生出来的,因此我们永远不需要永久保存这些派生数据

我原以为Redis可以将磁盘用作辅助LRU缓存,但却找不到任何相关文档。Redis似乎只使用磁盘来持久化整个缓存。我设想我们将能够通过一堆Redis实例横向扩展


如果Redis无法做到这一点,是否还有其他系统可以做到这一点?

如果数据无法放入内存,操作系统可以将其交换到磁盘。这称为虚拟内存。在这里您可以找到一个解释:


备注:您想要检索一些数据,对其进行一些操作,然后会得到一些中间结果。请检查您是否希望分发您的处理,而不仅仅是数据。看看Apache Hadoop,尤其是Apache Spark。

在不改变客户机工作方式的情况下解决这个问题的方法实际上不是使用Redis,而是使用一个可以配置为在引擎盖下使用LevelDB的工具。

您指向的链接表明VM已经贬值。在3中是否可用?我们已经查看了Hadoop,但是我们的ALGOS都是C++,所以在Hadoop中运行不是一个选项。我的答案是错误的。Redis中的“虚拟内存”是一项特殊功能,与操作系统虚拟内存无关。您仍然可以尝试的是使用常规操作系统交换,并为Redis提供比机器中更多的内存。这方面的成功可能会有所不同,这取决于Redis数据布局的外观。