搜索和查询主动-主动数据库
搜索和查询主动-主动数据库。
Redis 堆栈 |
---|
从 Redis Enterprise Software (RS) 6.0 及更高版本支持的 RediSearch 2.x 开始,您可以在创建时启用主动-主动数据库的搜索和查询。
您可以在主动-主动数据库的任何实例上运行搜索作。
运作方式
- 创建启用了 RediSearch 2.x 的主动-主动数据库。
- 在数据库的每个实例上创建索引。
- 如果您使用的是同义词,则需要将它们添加到每个副本中。
- 索引由数据库键空间之外的每个实例维护,因此仅同步对数据库中哈希的更新。
命令兼容性
主动-主动数据库不支持以下搜索和查询命令:
例
下面是一个有助于可视化主动-主动搜索和查询的示例:
时间 | 描述 | CRDB 实例 1 | RediSearch 实例 1 | CRDB 实例 2 | RediSearch 实例 2 |
---|---|---|---|---|---|
t0 | 在每个实例上创建索引 | 英尺。创建 idx .... | 英尺。创建 idx .... | ||
T1 | 在实例 1 上添加 doc1 作为哈希值;RediSearch 在实例 1 上为 doc1 编制索引 | HSET doc1 字段 1 “a” | (索引 doc1 field1 “a”) | ||
T2 | 在实例 2 上添加 doc2 作为哈希值;RediSearch 在实例 2 上为 doc2 编制索引 | HSET doc1 字段 2 “b” | (索引 doc1 field2 “b”) | ||
T3 | 在每个实例中搜索 “a” 只会在实例 1 中查找结果 | 英尺。搜索 idx “a” 1) 1 2) doc1 |
英尺。搜索 idx “a”1 ) 0 |
||
T4 | 主动-主动同步 | -同步- | -同步- | ||
T5 | 在每个实例中都可以找到这两个哈希值 | HGETALL doc1 1) “field2”2 ) “b” 3) “field1”4 ) “a” |
HGETALL doc1 1) “field2”2 ) “b” 3) “field1”4 ) “a” |
||
T6 | 在每个实例中搜索 “a” 将同时查找两个文档 | 英尺。搜索 idx “a” 1) 1 2) doc1 |
英尺。搜索 idx “a” 1) 1 2) doc1 |
实际结果是,您拥有一个具有高度一致性的地理分布式数据库,该数据库还可以在任何实例上运行搜索作。