ФорумПрограммированиеPHP для идиотов → Кэширование в память

Кэширование в память

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 4:37, спустя 37 минут 8 секунд

    lolcat, если 1000 страниц - то можно вообще не париться. сириусли.

    Второе хз, непонятны критерии.

    актуальность информации, обычно это в сайтах с регистрацией - личный кабинет, "кто онлайн" для соцсетей и тому подобная хрень. на странице оказывается динамический элемент, требующий постоянного обновления, и получается что нужно генерить заново всю страницу

    не всё полезно, что в swap полезло
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 24 декабря 2011 г. 7:28, спустя 2 часа 51 минуту 21 секунду

    Если кешируешь готовый html — кешируй блок с контентом, а шапку и подвал всякий раз генерируй. Ну или кешируй данные, которые в контент попадают, а сам блок таки генерируй.
    ιιlllιlllι унц-унц
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 8:44, спустя 1 час 15 минут 51 секунду

    я предпочитаю ленивую загрузку в кеш, т.е. при первом обращении мы генерим кэш, ложим его в кэш, и отдаем тому кто запрашивал. При следующих обращений мы проверяем если кэш есть, то отдаем из кэша, если нет возвращаемся к первому действию.
    Кэшировать нужно все и вся, но это лучше внедрять уже тогда, когда реально необходимо.
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 10:00, спустя 1 час 15 минут 49 секунд

    Кэшировать нужно все и вся, но это лучше внедрять уже тогда, когда реально необходимо.

    а когда реально необходимо-то?
    Спустя 204 сек.
    При следующих обращений мы проверяем если кэш есть, то отдаем из кэша, если нет возвращаемся к первому действию.

    всё так, но
    - кэш нужно проверять на просроченность
    - хранилище кэша может быть переполнено, и если объём кэшируемых данных больше выделенного места то эффективность кэша резко падает
    не всё полезно, что в swap полезло
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 10:14, спустя 14 минут 7 секунд

    Вот ссылочка, ну так, почитать-подумать
    http://slonik-v-domene.livejournal.com/72485.html
    не всё полезно, что в swap полезло
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 10:29, спустя 15 минут

    вот ещё
    http://habrahabr.ru/blogs/sql/127871/
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 24 декабря 2011 г. 11:52, спустя 1 час 23 минуты 34 секунды

    master, да ладно. вот мы щас с антохой пишем магазин например. Есть понятие "список товаров" и там пиздец сложные и объемные условия на получение товара - всякие доступности по городам/странам, цены/ скидки/наценки/наборы/составы товара и прочая ебота. чтобы получить все 500 товаров у меня в базу ломится порядка 10 000 - 20 000 скл запросов, да они маленькие, но блядь их дохуя и ничего с этим не поделаешь :-)

    Если их не кешировать то страница генерится порядка 2 секунд, приходится кешировать полюбе.

    По хорошему, если пишешь используя ORM, то инвалидировать кеш для объекта можно в CRUD операциях, это сработает для 95% ситуаций инвалидации

    Сапожник без сапог
  • stopkran

    Сообщения: 53 Репутация: N Группа: Кто попало

    Spritz 24 декабря 2011 г. 13:34, спустя 1 час 42 минуты 10 секунд


    ну блять
    говорю же, кешировать не нужно
    от кеширования одни проблемы
    одни блять проблемы от кеширования
    кеширование усложняет программу минимум вдвое….
    ….
    перемножаешь всё это и понимаешь что приложение становится слишком сложным….


    У меня дежавю или я все эти слова уже действительно где-то видел раньше?..


    кешируй все и всегда!


    Неточно! Надо: "кэшируй всё, что поддаётся кэшированию" - и отпадут аргументы от master.

    Думаю, в какую степь продолжать.


    Продолжи с конца :-) - начни кэшировать на клиенте ("304 not modified").
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 14:08, спустя 33 минуты 19 секунд

    блядь, а на мой вопрос ответите профи?
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 15:53, спустя 1 час 45 минут 7 секунд

    а когда реально необходимо-то?

    тогда, когда в этом наступает необходимость (высокая нагрузка, посещаемость и тд и тп.)
    всё так, но
    - кэш нужно проверять на просроченность
    - хранилище кэша может быть переполнено, и если объём кэшируемых данных больше выделенного места то эффективность кэша резко падает

    эти случаи должны решаться программно, т.е. ты сам указываешь время или условия действия кэша. Имхо это не такие уж сложные случаи.
    Спустя 14 сек.
    блядь, а на мой вопрос ответите профи?

    а че у тебя за вопрос то? :)
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 16:12, спустя 19 минут 28 секунд

    Меня интересует такой вопрос. Допустим мы ставим флаг, что кешь генерируется (т.е. нужно отдавать данные не из кеша), но как сделать, что бы этот флаг сам не стал причиной сбоя?

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 16:32, спустя 19 минут 14 секунд

    чтобы получить все 500 товаров у меня в базу ломится порядка 10 000 - 20 000 скл запросов

    эээ… што?
    Спустя 36 сек.
    что бы этот флаг сам не стал причиной сбоя?

    какого сбоя?
    не всё полезно, что в swap полезло
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 16:44, спустя 12 минут 9 секунд

    master, сбоя, которого этот флаг призван убрать. Чтобы несколько вызовов не запускали обновление одного и того же кеша ставится пометка, что кешь есть но он формируется. А как же быть с пометкой - тут возникает такая же проблема.
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 16:49, спустя 5 минут 45 секунд

    kostyl, ну я вон ссылку на хабр выложил, там как раз про это. конкретно в пыхе лок можно поставить семафорами
    http://php.net/manual/en/book.sem.php
    я правда сам так не делал, теоретизирую только )
    не всё полезно, что в swap полезло
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 24 декабря 2011 г. 17:54, спустя 1 час 4 минуты 23 секунды

    master, можно еще попробовать на основе sqlite сделать …

Пожалуйста, авторизуйтесь, чтобы написать комментарий!