Redis: кэшировать объект или его json?

169
02 мая 2018, 03:56

Всем привет. Давно использую Redis, но только сейчас задался этим вопросом.

Есть, к примеру, следующий код:

$article = Cache::rememberForever('articles', function(){
  return Article::all();
});

Где в итоге в переменной article содержится объект, полученный через Eloquent. В то же время, в ОЗУ это занимает гораздо больше памяти, нежели такое:

$article = Cache::rememberForever('articles', function(){
  return Article::all()->toJson();
});

С другой стороны, тем самым мы лишаем себя всех возможностей Eloquent модели и коллекций в целом. Но мы можем сделать следующее:

$article = Cache::rememberForever('articles', function(){
  return Article::all()->toJson();
});
$article = json_decode($article);
$article = Article::hydrate($article);

Но это займет больше ресурсов со стороны сервера. Как найти золотую середину в данном случае?

Весь вопрос пишу "на коленке", он имеет более абстрактную часть, где важна идеология, а не синтаксис, поэтому за синтаксические ошибки прошу не винить. Пример идет на Laravel.

READ ALSO
Скролл у модального окна

Скролл у модального окна

Как сделать чтобы у body не было скролла, а у модального окна он был?

178
Как парсить HTML и доставать content из <meta>?

Как парсить HTML и доставать content из <meta>?

Могу ли я парсить HTML и доставать из <meta> допустим вот такое:

267
Ширина отдельных элементов jquery

Ширина отдельных элементов jquery

Есть некоторое количество spanХочу узнать ширину каждого из них, и дать им отрицательный правый маржин с размером в ширину

194
Очистка формы jquery

Очистка формы jquery

Есть две формы на сайтеТам же и кнопка очистить

209