首页 > 解决方案 > 使用 Zookeeper 和 Redis 的分布式索引

问题描述

我们可以使用 zookeeper 服务将来自客户端的请求重定向到特定的 Redis 节点吗?例如,我有 10 个 Redis 节点(一个集群),其中每个集群都包含一些缓存数据。

那么我可以为 zookeeper 中的每个节点维护索引范围,以便 zookeeper 服务知道哪个节点具有哪个索引范围,因此当用户请求 x 到 y 范围内的记录时,它会重定向到保存该记录的 Redis 节点范围?

标签: cachingindexingredisapache-zookeeperdistributed-system

解决方案


是的,事实上这是两步索引。许多数据库使用 2-step sorted map

  • 0 级索引(在您的情况下为 zookeeper)包含到 1 级数据库的范围映射。
  • 一级索引(在您的情况下为 Redis)包含实际数据。

蟑螂数据库谷歌大表普遍使用

但是,还有其他选项,例如使用一致散列,如果一致性不是硬性要求,则可以避免像dynamo db这样的 2 级索引。


推荐阅读