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
Nosql 我应该使用redis来存储大量二进制文件吗?_Nosql_Redis_Blob - Fatal编程技术网

Nosql 我应该使用redis来存储大量二进制文件吗?

Nosql 我应该使用redis来存储大量二进制文件吗?,nosql,redis,blob,Nosql,Redis,Blob,我需要存储大量的二进制文件(10-20 TB,每个文件的大小从512 kb到100 MB不等) 我需要知道Redis对我的系统是否有效。 我的系统中需要以下属性: 高可用性 故障转移 碎片 我打算使用一组商品硬件来尽可能降低成本。请建议使用Redis构建这样一个系统的利弊。我还担心Redis的高ram要求。我不会将Redis用于这样的任务。其他产品将更适合IMO Redis是内存中的数据存储。如果要存储10-20 TB的数据,则需要10-20 TB的RAM,这非常昂贵。此外,内存分配器针对小

我需要存储大量的二进制文件(10-20 TB,每个文件的大小从512 kb到100 MB不等)

我需要知道Redis对我的系统是否有效。 我的系统中需要以下属性:

  • 高可用性
  • 故障转移
  • 碎片

我打算使用一组商品硬件来尽可能降低成本。请建议使用Redis构建这样一个系统的利弊。我还担心Redis的高ram要求。

我不会将Redis用于这样的任务。其他产品将更适合IMO

Redis是内存中的数据存储。如果要存储10-20 TB的数据,则需要10-20 TB的RAM,这非常昂贵。此外,内存分配器针对小对象而不是大对象进行了优化。你可能不得不把文件切成各种各样的小块,这真的不方便

Redis不为HA和故障切换提供临时解决方案。提供了主/从复制(并且工作得很好),但不支持此故障切换的自动化。客户端必须足够智能,才能切换到正确的服务器。服务器端(但未指定)必须以可靠的方式在主节点和从节点之间切换角色。换句话说,Redis只提供自己动手的HA/故障切换解决方案

切分必须在客户端实现(如memcached)。有些客户支持它,但不是所有客户都支持。最快的客户端(hiredis)不会。无论如何,再平衡之类的事情必须在Redis之上实施。应该支持这种分片功能的Redis集群还没有准备好


我建议使用其他一些解决方案。MongoDB可能是一种可能性。Hadoop with是另一个。如果您喜欢尖端项目,您可能想试一试。

hdfs可能无法很好地工作,如果您有数百万个小文件(比如缩略图缓存)快速进入未来-由于版本2.8(2015年发布),Redis确实提供了一个出色的临时HA和自动故障切换解决方案。