评论分享的 NoSQL 使用场景:
- 之前在讲座业务重构中,用 es 查询数据,其他组的小伙伴维护的 es,但是 es 性能不行,where 条件里七八个字段,排序两个字段,查询 es 基本两千左右 QPS,难以支撑支撑十几万人的直播讲座,而且直播人数增长很快,es 已经成为了性能瓶颈,查询条件是类标签的,比如几年级,哪个学科,直播类型,还有时间类的,对于这些字段我是可以打标签的,还有开始时间、结束时间,根据类标签的查询特点,我使用了倒排索引+ roaring bitmap 来过滤,使用快速排序对多字段进行排序。使用类延时队列来完成时间的检索。整个检索过程在微秒级,而且对查询的结果做了缓存,查询条件相同的直接从缓存中取,避免了重复检索和排序,查询缓存会在讲座下次修改,更新倒排索引之后清空。重建查询缓存。重构完讲座的检索性能达到了几十倍的性能提升。