ignite - 如何在缓存中找到最大的键
问题描述
我有一个缓存(),它的键增加(尽管不一定按顺序,例如 1002、1003、1020、1100)
我正在使用 .Net 版本的 Ignite(它是 Java 版本的包装器)
现在我正在获取整个集合并使用 Linq 查询结果。
如何在不使用 Linq 的情况下有效地检索最大密钥。
解决方案
一种有效的方法是使用 SQL(如果数字是值的一部分,则使用适当的索引)。
您可以继续将 LINQ 与 Ignite LINQ 提供程序一起使用以保持代码干净: https ://apacheignite-sql.readme.io/docs/linq
int
带键的简单示例:
var cfg = new CacheConfiguration("cache-name", new QueryEntity(typeof(int), typeof(int)));
var cache = ignite.GetOrCreateCache<int, int>(cfg);
cache[1] = 1;
cache[3] = 3;
var max = cache.AsCacheQueryable().Max(e => e.Key);
这将被转换为 SQL 并由 Ignite 高效执行,而无需在本地加载整个数据集。
推荐阅读
- flutter - 包装按钮的内容宽度而不是固定宽度
- tensorflow - How to use Variational Autoencoder as a Feature Extractor?
- ajax - 在 Asp.net core 2.1 上使用 Boostrap Modal 上传文件
- sql - Oracle SQL - 无效的 Alter Table 选项
- sql - MS SQL (SAP B1) “当子查询没有用 EXISTS 引入时,只能在选择列表中指定一个表达式...”
- ansible - 即使在使用本地连接运行 playbook 时将 delegate_to 设置为 remote,Ansible 也会在控制机器中创建目录
- c++ - objc 运行时源代码中类 ExplicitInit 的用途
- asp.net-core - .NET Core 3.1 Kestrel/Apache 停止响应请求
- heroku - 如何在 Heroku Review 应用程序中设置 cookie?
- php - WordPress - How to select specific values from a table column