deepstream "cache" 层中的实时查询?

Realtime queries in deepstream "cache" layer?

我明白了,通过使用 RethinkDB 连接器,可以通过订阅特定命名的列表来实现实时查询功能。我认为,这实际上不是最快的解决方案,因为查询可能仅在记录更改写入数据库后才会更新。是否有任何推荐的方法来实现深度流端的实时查询功能?

有一些有利的属性,例如:

我可以想出多种方法来做到这一点:

或者我们有 list.listen() 而我只是错过了?或者有更优雅的方法怎么做?

好问题 - 通常列表是客户端概念,在记录之上实现。 Listen 通知您有关客户订阅记录,不一定更改它们 - 更改通知通过 mylist.subscribe(data => {})myRecord.subscribe(data => {}).

到达

棘手的一点是缓存的查询能力非常有限。 Redis 有一个二级索引的基本概念,可以搜索范围和交集,据我所知,memcached 和 co 是纯键值存储,只能通过 ID 搜索 - 因此实际查询在数据库层上最有意义您的数据通常会在不到 200 毫秒的时间内到达。

RethinkDB 搜索提供程序支持 RethinkDB 的内置实时查询功能。或者,您可以使用 MongoDB 并跟踪其操作日志或使用 PostGres 和 deepstream 的内置订阅功能来获取更改通知。