1

我正在尝试创建一个基于 redis 的数据存储,其中包含多个字段,可用于根据其值获取实体。数据将类似于;

Person<Entity>
 Name
 Address
 Purchases<Another Entity>
 Reviews<list of another Entity>

这也将存在于其他实体中,因为这将是不同实体之间的多对多关系。

我没有考虑传统数据库,因为我正在寻找此类示例中的可扩展性和容错性。我正在创建的是以下实体 id 哈希映射到每个实体对象集,其中包含说人与购买的关联,另一个用于购买与人的关联,依此类推——一个用于多对多关系的双方。

由于这种设计将涉及大量开销,我怀疑保持这种非规范化存在一些缺陷。至于在数据库上使用内存存储的选择,我认为查询响应时间具有关键价值。在实施此示例以学习如何处理大数据挑战时,我正在寻找有关我的设计的建议。

4

1 回答 1

4

在实施此示例以学习如何处理大数据挑战时,我正在寻找有关我的设计的建议。

您认为您面临的挑战是大数据的依据是什么?我们谈论多少数据?在将关系数据库视为可能满足您需求的解决方案之前,您需要先问自己这个问题。

我没有考虑传统数据库,因为我正在寻找此类示例中的可扩展性和容错性。

Redis 和关系数据库有同样的可扩展性问题;除非您实施或使用自定义分片技术,否则它们不能很好地水平扩展。Redis Cluster旨在解决这个问题,但它正在进行中,尚未准备好生产,同时您可以使用twemproxy。由 Twitter 开发,它是一种代理解决方案,用于在 redis 服务器集群中分发密钥。

我正在尝试创建一个基于 redis 的数据存储,其中包含多个字段,可用于根据其值获取实体。

Redis 并非旨在基于值、周期进行查询;阅读thisthis以更好地理解原因。

于 2013-07-26T23:54:25.813 回答