小编典典

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

redis

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

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

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

我打算使用一组商品硬件来尽可能降低成本。请提出使用Redis构建这样的系统的利弊。我还对Redis的高内存需求感到担忧。


阅读 1732

收藏
2020-06-20

共1个答案

小编典典

我不会将Redis用于此类任务。其他产品将更适合IMO。

Redis是一个内存数据存储。如果要存储10-20 TB的数据,则需要10-20
TB的RAM,这很昂贵。此外,内存分配器针对小型对象(而非大型对象)进行了优化。您可能必须将文件切成小块,这并不是很方便。

Redis不提供用于HA和故障转移的临时解决方案。提供了主/从复制(并且运行良好),但是不支持此故障转移的自动化。客户端必须足够聪明才能切换到正确的服务器。服务器端的某些内容(但未指定)必须以可靠的方式在主节点和从节点之间切换角色。换句话说,Redis仅提供自己动手做的HA
/故障转移解决方案。

分片必须在客户端上实现(与memcached一样)。一些客户对此有支持,但并非全部。最快的客户端(hiredis)没有。无论如何,诸如重新平衡之类的事情必须在Redis之上实现。应该支持这种分片功能的Redis
Cluster尚未准备就绪。

我建议使用其他解决方案。带有GridFS的 MongoDB
是可能的。带有HDFS的 Hadoop
是另一个。如果您喜欢最前沿的项目,则可能想尝试一下椭圆网络

2020-06-20