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