1

我是redis的新手。我需要知道排序、交集和其他聚合操作是如何跨分片发生的。是否可以执行此类操作?

4

1 回答 1

4

Redis 不会透明地为您处理这个问题。您基本上需要从每个分片中检索结果,然后重新组合它们(假设您的搜索不是分片键)。一些库使用 Redis 使分片更容易(参见 predis https://github.com/nrk/predis)。不过,基本上,您要做的是针对所有分片运行查询,带回结果,然后合并结果、排序、相交、聚合等。

您可能需要关注 Redis 集群项目http://redis.io/topics/cluster-spec,因为它可能提供您想要在不分片的情况下实现的目标,尽管它目前仅处于开发阶段。

最后,您还应该知道,当您添加/删除新节点时,分片不会提供任何类型的冗余或重新平衡分片的工具。如果一个分片不见了,您将丢失该分片中的所有数据。如果您使用 Redis 作为缓存而不是作为数据的最终权威存储,这很好。因此,请确保您也考虑每个分片的主从复制。

于 2012-12-16T16:10:36.300 回答