caching - 在 Redis 缓存中按值搜索 - 二级索引
问题描述
我是 Redis 的新手。我想通过来自 API 的一个或多个值进行搜索。例如 - 假设我想存储一些 sec 数据,如下所示:
Value1
{
"isin":"isin123",
"id_bb_global":"BBg12345676",
"cusip":"cusip123",
"sedol":"sedol123",
"cpn":"0.09",
"cntry":"US",
"144A":"xyz",
"issue_cntry":"UK"
}
Value2
{
"isin":"isin222",
"id_bb_global":"BBG222",
"cusip":"cusip222",
"sedol":"sedol222",
"cpn":"1.0",
"cntry":"IN",
"144A":"Y",
"issue_cntry":"DE"
}
...
...
我想按 cusip 或 cusip 和 id_bb_global、ISIN plus Exchange 或 sedol 进行搜索。
例如 - 搜索查询数据 -> {"isin":"isin222", "cusip":"cusip222"} ,应该从值返回所有数据集。
将这种数据结构存储在 Redis 和 API 中以更快地检索相同数据的最佳方法是什么。
解决方案
插入数据时,可以创建集合来维护索引。
{
"isin":"isin123",
"id_bb_global":"BBg12345676",
"cusip":"cusip123",
"sedol":"sedol123",
"cpn":"0.09",
"cntry":"US",
"144A":"xyz",
"issue_cntry":"UK"
}
对于上述数据的示例,如果您想通过isin
and进行过滤,您可以为andcusip
创建相应的集合,并将该项目 id 添加到这两个集合中。isin:123
cusip:123
稍后,如果您想找到两者中的项目isin:123
和cusip:123
,您只需要SINTER
在这 2 个集合上运行。
或者,如果您想查找isin:123
OR中的项目cusip:123
,您可以合并它们。
推荐阅读
- kubernetes - 使用 url 登录 K8S Dashboard
- python - 为什么多处理在 python 中不起作用
- android - 如何将波纹动画添加到具有自定义背景的小部件?
- kendo-combobox - 无法将远程数据加载到 kendoComboBox
- yaml - 如何为各个功能网关事件分配 APIkey?
- java - Service中的异步任务,什么时候调用stopSelf方法?
- amazon-web-services - 用户无权执行:execute-api:Invoke on resource 尝试从 Lambda 调用 APIG
- apache - .htpasswd 不保护 .txt 文件
- laravel - 如何在 Laravel 上使用 Carbon 验证给定时间大于当前时间?
- sql - SQL Server Serverless - Openrowset - 元数据函数?