Большой набор основных данных (50 тыс. записей в списке) необходимо кэшировать с помощью Redis. но приложение будет извлекать отдельные записи из основных данных. Имеет ли смысл сериализовать 50 000 записей в списке и хранить их в Redis, и каждый раз получать сериализованную строку и десериализовать объект списка и запрашивать с помощью linq и возвращать одни данные? например хранить
IDistributedCache _cache
// data is list<object> of size 50K
var jsonString = JsonConvert.SerializeObject(data);
await _cache.SetStringAsync(key, jsonString, options);
забрать
var cachedItem = await _cache.GetStringAsync(key);
var result = JsonConvert.DeserializeObject<T>(cachedItem);
...
return result.where(x=>x.Id=id)
потому что DeserializeObject большой строки неэффективен. Если я сохраняю один за другим в Redis, и если есть требование также хранить все целиком, я беспокоюсь, что будет дублирование данных, в котором одни и те же данные будут храниться дважды. вот почему я предпочитаю хранить 50К целиком.
любой совет?