搜索和查询 Active-Active 数据库
搜索和查询 Active-Active 数据库。
从 RediSearch 2.x 开始,在 Redis Enterprise 软件 (RS) 6.0 及更高版本中受支持,您可以在创建时 启用搜索和查询 Active-Active 数据库。
您可以在 Active-Active 数据库的任何实例上运行搜索操作。
工作原理
- 创建启用了 RediSearch 2.x 的 Active-Active 数据库。
- 在数据库的每个实例上创建索引。
- 如果您正在使用同义词,您需要将它们添加到每个副本。
- 索引由每个实例在数据库键空间之外维护,因此仅同步对数据库中哈希的更新。
命令兼容性
Active-Active 数据库不支持以下搜索和查询命令
示例
以下是一个示例,帮助您可视化 Active-Active 搜索和查询
时间 | 描述 | CRDB 实例 1 | RediSearch 实例 1 | CRDB 实例 2 | RediSearch 实例 2 |
---|---|---|---|---|---|
t0 | 在每个实例上创建索引 | FT.CREATE idx .... | FT.CREATE idx .... | ||
t1 | 将 doc1 作为哈希添加到实例 1;RediSearch 在实例 1 上索引 doc1 | HSET doc1 field1 "a" | (索引 doc1 field1 "a") | ||
t2 | 将 doc2 作为哈希添加到实例 2;RediSearch 在实例 2 上索引 doc2 | HSET doc1 field2 "b" | (索引 doc1 field2 "b") | ||
t3 | 在每个实例中搜索 "a" 仅在实例 1 中找到结果 | FT.Search idx "a" 1) 1 2) doc1 |
FT.Search idx "a" 1) 0 |
||
t4 | Active-Active 同步 | - 同步 - | - 同步 - | ||
t5 | 在每个实例中都找到了两个哈希 | HGETALL doc1 1) "field2" 2) "b" 3) "field1" 4) "a" |
HGETALL doc1 1) "field2" 2) "b" 3) "field1" 4) "a" |
||
t6 | 在每个实例中搜索 "a" 都能找到两个文档 | FT.Search idx "a" 1) 1 2) doc1 |
FT.Search idx "a" 1) 1 2) doc1 |
实际结果是您拥有一个具有高一致性水平的地理分布式数据库,该数据库还可以在任何实例上运行搜索操作。