使用案例
Redis 查询引擎使用案例
应用程序搜索和外部二级索引
Redis Stack 支持应用程序搜索,无论记录来源是 Redis 还是其他数据库。在后一种情况下,您可以将 Redis Stack 用作数字或全文数据的外部二级索引。
Redis数据的二级索引
您可以使用Redis哈希和JSON文档来表示您的数据模型。然后,您可以声明二级索引以支持对数据集的各种查询。每当添加或更新与索引匹配的哈希或JSON文档时,Redis Stack会自动更新索引。
地理分布式搜索
在地理分布式搜索中,哈希和JSON文档以通常的active-active方式处理。索引遵循数据库中文档的内容。在每个数据库上创建索引,然后将同义词(如果使用)添加到每个数据库。
统一搜索
您可以使用Redis Stack在多个源系统中进行搜索,例如文件服务器、内容管理系统(CMS)或客户关系管理(CRM)系统。您可以使用ETL工具批量处理源数据,或者作为实时流(例如,Kafka或Redis流)进行处理。
分析
数据通常来自多个源系统。Redis Stack 可以提供维度和事实的统一视图。您可以根据维度查询数据,按维度分组,并对事实应用聚合。
COUNT
, TOLIST
, FIRST_VALUE
, 和 RANDOM_SAMPLE
)基于分面查询数据。临时搜索(零售)
当用户登录网站时,购买搜索历史会从另一个数据存储填充到索引中。这需要轻量级的索引创建、索引过期和快速文档索引。
当用户登录时,应用程序/服务会创建一个临时的、用户特定的全文索引。应用程序/服务可以直接访问用户特定的索引和主数据存储。当用户退出服务时,索引会被显式删除。否则,索引会在一段时间后过期(例如,在用户的会话过期后)。
使用 Redis Stack 为此类应用程序提供以下好处:
- 搜索索引仅在需要时填充。
- 只有一小部分用户(例如,2%)在同一时间处于活跃状态。
- 用户仅在短时间内活跃。
- 索引的文档数量较少,与持久搜索索引相比,这非常具有成本效益。
实时库存(零售)
在实时库存零售中,关键问题是产品可用性:“哪里有货?”这类项目的挑战在于性能和准确性。Redis Stack 允许对数百万个商店/SKU组合进行实时搜索和聚合。
您可以从传统的库存系统建立实时事件捕获到Redis Stack,然后让多个库存服务查询它。然后,您可以使用组合查询,如物品数量、价格范围、类别和位置。利用地理分布式搜索(Active-Active)为您的远程商店位置。
使用 Redis Stack 为此类应用程序提供以下好处:
- 为下游消费者(如市场营销、商店/电子商务和履行)提供低延迟查询
- 存储和数据中心之间的即时和更高一致性
- 改善客户体验
- 实时定价决策
- 减少购物车放弃
- 减少补救措施(退款、取消)
实时对话分析(电信)
实时收集、访问、存储和利用通信数据。捕获网络流量并将其存储在全文索引中,以便深入了解数据。
使用连接信息收集(源IP、DNS)和会话数据收集(Wireshark/TShark实时捕获)来收集数据。然后过滤、转换并将会话数据存储在Redis中,以执行搜索查询并为您的分析创建自定义仪表板。
使用 Redis Stack 为此类应用程序提供以下好处:
- 洞察性能问题、安全威胁和网络故障
- 提高了服务的正常运行时间和安全性
研究门户(学术界)
研究门户让用户搜索文章、研究、规格、过去的解决方案和数据,以回答特定问题并利用现有的知识和历史。
要构建这样的系统,您可以使用支持标签查询、数值范围查询、地理位置查询和全文搜索的索引。
使用 Redis Stack 为此类应用程序提供以下好处:
- 创建相关且个性化的搜索体验,同时执行内部和监管数据治理政策
- 提高生产力、安全性和合规性