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