Как я могу найти самый большой ключ в кеше - PullRequest
0 голосов
/ 04 июля 2019

У меня есть кеш (), ключи которого увеличиваются (хотя и не обязательно в последовательности, например, 1002, 1003, 1020, 1100)

Я использую .Net-версию Ignite (которая является оберткой для java-версии)

Прямо сейчас я получаю весь набор и запрашиваю результаты, используя Linq.

Как эффективно получить самый большой ключ без использования Linq.

1 Ответ

3 голосов
/ 05 июля 2019

Эффективным способом является использование 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 без локальной загрузки всего набора данных.

...