что такое выйти в кэш
Что такое кэш и зачем его чистить
Это старые данные, которые уже могут быть неактуальны
Когда не работает какой-то сайт или сервис, от техподдержки часто можно услышать «Почистите кэш и перезагрузите страницу». Иногда это помогает. Рассказываем, почему так происходит, что такое кэш, зачем он нужен и как его почистить.
⚠️ Минутка грамотности. По словарю РАН слово cache в русском пишется «кеш». Но по рекомендациям Гиляревского нужно писать «кэш». И нам нравится, как это произносится. Произнесите вместе с нами:
Что такое кэш
Кэш — это данные, которые компьютер уже получил и использовал один раз, а потом сохранил на будущее. Смысл кэша в том, чтобы в следующий раз взять данные не с далёкого и медленного сервера, а из собственного быстрого кэша. То же самое, что закупиться продуктами на неделю и потом ходить не в магазин, а в холодильник.
В случае с браузером это работает так:
Дальше происходит так:
4. Если вкладкой или браузером долго не пользовались, операционная система выгружает из оперативной памяти все страницы, чтобы освободить место для других программ.
5. Если переключиться назад на браузер, он моментально сходит в кэш, возьмёт оттуда загруженную страницу и покажет её на экране.
Получается, что если браузер будет брать из кэша только постоянные данные и скачивать с сервера только что-то новое, то страница будет загружаться гораздо быстрее. Выходит, главная задача браузера — понять, какой «срок годности» у данных в кэше и через какое время их надо запрашивать заново.
👉 Например, браузер может догадаться, что большая картинка на странице вряд ли будем меняться каждые несколько секунд, поэтому имеет смысл подержать её в кэше и не загружать с сервера при каждом посещении. Поэтому в кэше часто хранятся картинки, видеоролики, звуки и другие декоративные элементы страницы.
👉 Для сравнения: браузер понимает, что ответ сервера на конкретный запрос пользователя кэшировать не надо — ведь ответы могут очень быстро меняться. Поэтому ответы от сервера браузер не кэширует.
Какая проблема с кэшем
На первый взгляд кажется, что кэш — это прекрасно: данные уже загружены, к ним можно быстро обратиться и достать оттуда всё, что нужно, без запроса к серверу на другом конце планеты.
Но представьте такую ситуацию: вы заходите в интернет-магазин обуви, в котором покупали уже много раз, но товары почему-то не добавляются в корзину. Или добавляются, но кнопка «Оплатить» не работает. Чаще всего причина в том, что браузер делает так:
Решение — почистить кэш
Когда мы чистим кэш, оттуда удаляются все данные, которые браузер сохранил «на всякий случай». Это значит, что при обновлении страницы браузер заглянет в кэш, увидит, что там пусто и запросит все данные с сервера заново. Они, конечно, тоже сразу отправятся в кэш, но в следующий раз вы уже будете знать, что делать.
Чтобы очистить кэш в Сафари, достаточно нажать ⌥+⌘+E, а в Хроме — нажать Ctrl+Shift+Backspace (⇧+⌘+Backspace) и выбрать время, в пределах которого нужно очистить кэш:
Зачем нужен кэш, если из-за него всё ломается?
На самом деле всё ломается не из-за кэша, а из-за неправильных настроек сервера, которые отдают страницу. Потому что именно сервер должен сказать браузеру: «Вот это можно кэшировать, а вон то лучше не кэшируй, мало ли что».
Часто разработчики недокручивают эти настройки, и браузер не получает нужных инструкций, поэтому кэширует всё подряд. И тогда приходится вмешиваться, чистить кэш и восстанавливать работоспособность.
Кэш в инвестиционным портфеле: для чего он нужен и где его выгодно хранить
Какую роль играет кэш в инвестиционном портфеле? В каких инструментах можно хранить кэш? Какие варианты выгодно использовать, а какие нет.
Когда нужен кэш и стоит ли его держать на счете?
Кэш в основном используют для двух целей:
Почему это важно? Работал ты спокойно. Никого не трогал. Получал свою з/п ежемесячно. И неожиданно тебя сокращают. Положение в экономике плачевное. Найти новую работу не получается. А жить на что-то нужно. Что делать?
Но мы сегодня не будем касаться подушки. А рассмотрим кэш в составе инвестиционного портфеля.
Кэш должен быть:
Какие инструменты выгодно использовать в качестве кэша?
Варианты в рублях
Что можно использовать в качестве рублевого кэша?
Банковские депозиты и карты. Проценты по вкладам в банке напрямую зависят от ставки ЦБ. И сейчас она на минимуме.
Как вариант можно использовать короткие вклады (на месяц, три месяца) или вклад с возможностью вывода средств без потери процентов. Но ставки по ним будут еще ниже. Чуть ли не в 2-3 раза.
Что можно придумать в этом случае?
Маленький совет от бывалого. Проценты на остаток по карте могут начисляться двумя способами: на ежедневный остаток или на минимальный остаток в течении месяца. Карта с ежедневным начислением процентов может быть в разы выгоднее (писал про это здесь).
Но у облигаций есть огромный минус. Цена облигаций на бирже может колебаться (на десятки процентов). Правда чем ближе срок до погашения, тем меньше волатильность. За несколько месяцев до погашения стоимость бумаг становится более менее постоянной.
Поэтому никаких длинных облигаций. Только короткие бумаги с погашение до 1 года. При погашении перекладываемся в новые.
Инструменты денежного рынка. Что у нас есть из рублевого? Два инструмента: ETF FXMM от Finex и фонд VTBM от ВТБ. Если смотреть на график котировок, то у нас восходящая прямая. Практически никаких просадок (и рисков соответственно).
Для примера, когда в марте 2020 года фондовые рынки акций падали на 20-30-40%, а потом восстанавливались в течении года, ETF FXMM снижался всего на 0,3%.
Плюсы: фонды имеет доходность сопоставимую со вкладами, но с гораздо большей ликвидностью. Можно моментально продать в любой день без потери дохода.
Какие минусы?
Поэтому на коротких сроках лучше не связываться с подобными вещами. Если возникнет желание припарковать денежки в подобных фондах на несколько дней, лучше оставьте их просто на счете. Дешевле будет не вкладывать. Это правило кстати касается и коротких облигаций.
Варианты в валюте
В долларах ситуация получше (по сравнению с евро), но тоже далеко не айс. Предлагают что-то на уровне 0,5% в год. Да еще нужно поискать где. Есть варианты более доходного размещения. Но чтобы получить процент повыше (хотя бы поднять его до 0.7-0,8%) нужно иметь тысяч 20-30 долларов минимум (многие просят от 50-100K) и (или) разместить вклад на длительный срок (2-3 года).
Готовы ли вы замораживать деньги под 0,5% в год. И в случае чего (при досрочном изъятии), вы и этот небольшой полпроцентик можете не увидеть. Я лично точно прохожу мимо.
Денежный рынок.
Мое уважение к провайдеру Finex. Он не скрывает актуальную (реальную) доходность фонда FXTB и публикует у себя на сайте.
Актуальная статистика по ETF FXTB находится здесь.
Иностранные облигации или евробонды. Длинные бумаги покупать опасно. Цена может сильно гулять. Особенно в негативные периоды. Если попытаться найти короткие бумаги с близкой датой погашения, то их просто нет. А если что-то и встретится, то ликвидность оставляет желать лучшего. Спред в стакане может составлять несколько процентов. Плюс снова риск валютной переоценки.
Фонды еврооблигаций / валютных облигаций.
Что лучше доллар, рубль или евро?
В какой валюте держать кэш?
Исторически на долгосроке валюта смотрится предпочтительнее рублей. В среднем (за последние 2 десятилетия) рубль ослаблялся к доллару на 5% в год. Но это правило применимо только к длинным интервалам.
На коротких сроках мы можем наблюдать совершенно противоположную картину. Например, за период с 2016 по 2018 курс доллара снижался (почти на 30%). Таких случаев можно найти много на графике.
Подводим итоги
Как, почему и когда надо чистить кэш на Android
Кэш приложений может быть спорной темой на Android. Многие люди постоянно чистят кэш приложений, веря в то, что это позволит смартфону работать быстрей. Другие говорят, что это, в первую очередь, сводит на нет всю цель кэширования и просто увеличивает время запуска приложений и выполняемых действий. Истина, как обычно, где-то посередине. Некоторые приложения могут не использовать кэширование эффективно, из-за чего используются излишне большие объемы памяти. Иногда кэш может вызывать проблемы после выхода обновления и надо его сбрасывать. А еще некоторые приложения могут начинать работать медленнее, когда их кэш становится очень большим. Сказать однозначно, надо ли его удалять, нельзя. Но сейчас рассмотрим эту тему подробнее, чтобы вы понимали, когда это делать и как?
Надо ли чистить кэш телефона?
Что такое кэш на Андройд
Кэширование в компьютерном мире это то, что позволяет приложениям, таким, как браузеры, игры и потоковые сервисы хранить временные файлы, которые считаются актуальными для уменьшения времени загрузки и увеличения скорости работы. YouTube, Карты, музыкальные сервисы и множество других приложений сохраняют информацию в виде данных кэша. Это могут быть миниатюры видео, история поиска или временно сохраненные фрагменты видео. Кэширование может сэкономить много времени, так как качество и скорость Интернета не везде одинаковы. Но по иронии судьбы, когда приложения выгружают много данных на ваш телефон, это в конечном итоге замедляет его работу, особенно, когда остается мало места на встроенной памяти.
Наш Иван Кузнецов не так давно писал о том, что никогда не чистит кэш и считает это не нужным. Многие из вас, возможно, с ним не согласны. Да я и сам переодически провожу эту процедуру. Тем не менее, для полноты картины можете ознакомиться с его мнением.
Очистка кэша и данных на Android
Хотя мы часто упоминаем очистку кэша и данных в одном ключе, на Android это два совершенно разных действия. Например, музыкальные сервисы часто сохраняют в кэш информацию, относящуюся к исполнителям, которых вы слушали, но которые не входят в вашу библиотеку. Когда кэш приложения очищается, все упомянутые данные стираются.
Очистка лишней не будет? Не факт.
Более существенные данные включают в себя пользовательские настройки, базы данных и данные для входа в систему. Когда вы очистите кэш, это все удалится и будет не очень приятно. Если говорить грубо, можно сказать, что очистка кэша придает приложению тот вид, который был сразу после его установки, но у вас останутся данные, которые вы сами осознанно сохранили (загруженные песни, видео в оффлайн, карты и так далее). Если вы удалите и эти данные, то приложение будет вообще нулевым. Если чистите и кэш, и данные, проще тогда и приложение переустановить, чтобы вообще все красиво было.
Как очистить память смартфона. Пять простых шагов.
Когда надо чистить кэш
В чем-то я согласен с Иваном и с его мнением, которое я приводил в начале статьи. Нет смысла чистить кэш часто. После того, как вы его очистили, приложение все равно его создаст заново. Только в это время оно будет работать еще медленнее.
Тут важно найти баланс и понять, действительно ли ваш смартфон тормозит из-за кэша или, например, он просто старый и уже не тянет. Если не вникать в это, то можно посоветовать чистить кэш один раз в 3-6 месяцев, но быть готовым, что первые несколько дней скорость работы будет чуть ниже. В итоге, вы как бы освежите приложение, удалив лишний мусор и заново собрав только то, что нужно.
Google Play рассылает пустые обновления приложений. Что делать?
Как очистить кэш и данные на Android
Точную инструкцию для каждого смартфона дать не получится, так как все зависит от производителя и версии ОС, но общие правила будут следующими.
Шаг 1: Запустите «Настройки» и перейдите в раздел «Хранилище» (или найдите его поиском). Так вы сможете узнать, сколько памяти вашего смартфона занято и чем.
Шаг 2. В разделе «Хранилище» найдите «Приложения» (или «Другие приложения») и выберите его. В нем будут перечислены все приложения, а также то, сколько места каждое из них занимает. В некоторых версиях ОС можно найти сортировку приложений по алфавиту или размеру.
Шаг 3: Зайдите внутрь приложения и удалите кэш или данные. Только надо понимать, что это действие необратимо.
Три простых шага для очистки кэша.
В отношении специальных приложений для очистки я очень категоричен и не рекомендую ими пользоваться. Несмотря на их обещания ускорить систему чуть ли не в разы, в лучшем случае они просто сделают то же, что я только что описал. Так почему бы не сделать это самому без установки сомнительных приложений, которые еще и будут собирать ваши данные? Единственное приложение-оптимизатор, которому я доверяю, это Google Файлы, но работает оно именно с хранилищем и чистит в первую очередь мусор. Хотя, на него тоже нельзя слепо полагаться, но оно сделано Google, а к ней доверия куда больше, чем к каким-то левым разработчикам.
Если вы все еще хотите установить подобное приложение, просто помните о том, что они работают в фоновом режиме и используют системные ресурсы. Даже если они что-то ускорят, то сразу замедлят обратно.
Надо ли чистить кэш Android-приложений
Возможность очистки данных — это действительно полезная функция для решения многих проблем, уникальная для Android. Но как и любой полезной вещью злоупотреблять ей не стоит. Не надо чистить кэш и память каждый день. Делайте это периодически и только по мере надобности. Начал телефон работать медленно — пробегитесь по хранилищу. Если увидели, что какое-то из приложений занимает слишком много места, хотя не должно, очистите кэш.
Еще больше полезных советов и рассуждения в нашем Telegram-канале.
Еще раз: очистка кэша не испортит ваш смартфон, но приложение потеряет часть сохраненных данных и оптимизированных под вас настроек. Некоторое время придется накапливать их заново, зато так можно убрать действительно лишнее. Раньше можно было одной кнопкой очистить кэш всех приложений, теперь только по одному, но, наверное, это к лучшему.
Чего точно не стоит делать с кэшем, так это чистить его каждый день или каждую неделю. Так вы точно не сделаете лучше никому.
Польза инвесторам периодически уходить в кэш
Специалисты по инвестициям часто говорят о «защите», когда опасаются, что рынок может быть подвержен коррекции. Идея состоит не в том, чтобы продавать свои ценные бумаги, а в том, чтобы использовать опционы или другие средства, которые позволяют получать прибыль в случае падения рынка. Как правило, эта «защита» характеризуется очень низкой стоимостью и при этом обеспечивает значительный выигрыш в случае успешного исхода. Но все не так просто.
Полное хеджирование длинных позиций недешево, и нелегко определить, какие из акций просядут быстрее или глубже других. Чтобы обезопасить себя от падения, индексные опционы следует покупать в очень большом количестве, особенно если вы если вы держите акции с высоким уровнем волатильности. Если в случае коррекции ваши акции упадут на 10%, небольшое количество опционных контрактов вряд ли существенно исправит положение. Так что единственный способ быть полностью защищенным от неопределенности на рынке – уйти кэш.
Кэш – это самая надежная гавань. Одно из главных преимуществ свободных денег заключается в том, что они дают вам время на раздумья. Вместо того, чтобы просто удерживать позиции, когда вы чувствуете, что не в ладу с рынком, лучше повременить с принятием решения.
Любой, кто активен на рынке, будет иметь какое-то предубеждение относительно направления рынка из-за позиций, которыми он владеет. Денежные средства помогут вам достичь какой-то реальной цели, хотя вы можете надеяться на крах рынка, если у вас будет много свободных средств. Когда вы смотрите на акции свежим взглядом, когда ваш портфель свободен от позиций, представление о том, хорошие они или плохие, часто будет совсем другим, чем если бы вы уже владели ими.
Я твердо верю, что каждый трейдер должен периодически полностью (или почти полностью) уходить в кэш (вы всегда можете перекупить акции, которые вам нравятся), потому что это помогает восстановить объективность и баланс. Такое решение заставляет вас задаться вопросом, почему вы держите ту или иную позицию. Часто мы владеем бумагами просто по инерции или из-за эмоциональной привязанности. Мы должны заставлять себя время от времени подвергать сомнению состав инвестиционного портфеля.
Многим участникам рынка такой совет может показаться смешным, но не забывайте о том, что часто долгосрочные инвесторы держат акции годами без особых на то причин, просто по привычке. Решение продать бумаги может заставить вас задуматься о том, стоит ли впоследствии снова их покупать. Могут возникнуть проблемы с налогами или другие расходы, но предложенная мною стратегия стоит того. Я склонен полностью игнорировать такие вопросы в трейдинге и инвестировании, потому что это часто приводит к плачевным результатам.
В общем, если вы не уверены в надежности своего инвестиционного портфеля, лучшее решение – продать все свои позиции. Так вы освободитесь от багажа акций, владение которыми вызывало у вас беспокойство, и с чистого листа сможете предпринять необходимые шаги по совершению удачных сделок.
На прошлой неделе я почти полностью избавился от своих активов. Не подумайте, я не «медведь» и не «бык», не знаю, в каком направлении решит двигаться рынок. Но большого ценового движения я тоже не вижу, поэтому и хочу взглянуть на ситуацию по-новому. Если рынок начнет расти, я смогу быстро купить нужные мне акции. Если же он начнет падать, у меня появится время для принятия некоторых стратегических решений.
Одна из замечательных особенностей фондового рынка заключается в том, что вы можете начать новую жизнь в любое время. Просто нажмите кнопку «продать» и уйдите в кэш. Такая стратегия может значительно улучшить ваше финансовое состояние в будущем. Кэш – это сила.
Кэши для «чайников»
Кэш глазами «чайника»:
Кэш – это комплексная система. Соответственно, под разными углами результат может лежать как в действительной, так и в мнимой области. Очень важно понимать разницу между тем, что мы ждем и тем, что есть на самом деле.
Давайте прокрутим полный оборот ситуаций.
Tl;dr: добавляя в архитектуру кэш важно явно осознавать, что кэш может быть средством дестабилизации системы под нагрузкой. Смотрите конец статьи.
Представим, что у нас есть доступ к базе данных, возвращающей курсы валют. Мы спрашиваем rates.example.com/?currency1=XXX¤cy2=XXX и в ответ получаем plain text значение курса. Каждые 1000 запросов к базе данных для нас, допустим, стоят 1 евроцент.
Итак, теперь мы хотим показывать на нашем сайте курс доллара к евро. Для этого нам нужно получить курс, поэтому на нашем сайте мы создаём API-обёртку для удобного использования:
И в шаблонах в нужном месте вставляем что-нибудь вроде:
Наивная имплементация делает самое простое, что можно придумать: на каждый запрос от пользователя спрашивает удалённую систему и использует ответ напрямую. Это означает, что теперь каждые 1000 просмотров пользователями нашей страницы стоят для нас на копейку больше. Казалось бы – гроши. Но вот проект растёт, у нас уже 1000 постоянных пользователей, которые каждый день заходят на сайт и просматривают по 20 страниц, а это уже 6 евро в месяц, что превращает сайт из бесплатного во вполне уже сопоставимый с платой за самые дешевые выделенные виртуальные серверы.
Вот тут на сцену выходит его величество Кэш
Зачем нам спрашивать курс для каждого пользователя на каждое обновление страницы, если для людей эта информация, в общем-то, не нужна так часто? Давайте просто ограничим частоту обновления до, например, раз в 5 секунд. Пользователи, переходя со страницы на страницу, всё равно будут видеть новое число, а мы платить будем в 1000 раз меньше.
Сказано – сделано! Добавляем несколько строчек:
Это самый главный аспект кэша: хранение последнего результата.
И вуаля! Сайт снова становится для нас почти бесплатным… До конца месяца, когда мы обнаруживаем от внешней системы счет на 4 евро. Конечно, не 6, но мы ожидали намного большей экономии!
К счастью, внешняя система позволяет посмотреть начисления, где мы видим всплески по 100 и более запросов каждые ровные 5 секунд в течение пиковой посещаемости.
Так мы познакомились со вторым важным аспектом кэша: дедупликацией запросов. Дело в том, что как только значение устарело, между проверкой наличия результата в кэше и сохранением нового значения, все пришедшие запросы фактически выполняют запрос к внешней системе одновременно.
В случае с memcache это можно реализовать, например, так:
И вот, наконец, потребление сравнялось с ожидаемым — 1 запрос в 5 секунд, расходы сократились до 2 евро в месяц.
Почему 2? Было 6 без кэширования для тысячи человек, мы же всё закэшировали, а сократилось всего в 3 раза? Да, стоило просчитать пораньше… 1 раз в 5 секунд = 12 в минуту = 72 в час = 576 за рабочий день = 17 тысяч в месяц, а ещё не все ходят по расписанию, есть странные личности заглядывающие поздней ночью… Вот и получается, в пике вместо сотни обращений одно, а в тихое время — по-прежнему запрос почти на каждое обращение проходит. Но всё равно, даже в худшем случае счёт должен быть 31×86400÷5 = 5.36 евро.
Так мы познакомились с еще одной гранью: кэш помогает, но не устраняет нагрузку.
Впрочем, в нашем случае люди приходят в проект и уходят и в какой-то момент начинают жаловаться на тормоза: страницы замирают на несколько секунд. А еще бывает под утро сайт не отвечает вообще… Просмотр консоли сайта показывает, что иногда днём запускаются дополнительные инстансы. В это же время скорость выполнения запросов падает до 5-15 секунд на запрос — из-за чего это и происходит.
Упражнение для читателя: посмотреть внимательно предыдущий код и найти причину.
Кстати, это грабли отнюдь не только кэша, это общий аспект распределённых блокировок: важно освобождать блокировки и иметь таймауты, во избежание дедлоков. Если бы мы добавляли «?» вообще без времени жизни, всё б замирало при первой же ошибке связи с внешней системой. К сожалению, memcache не предоставляет хороших способов для создания распределённых блокировок, использование полноценной БД с блокировками на уровне строк лучше, но это было просто лирическое отступление, необходимое просто потому, что на эти грабли наступили.
Итак, мы исправили проблему, вот только ничего не изменилось: всё равно изредка начинались тормоза. Что примечательно, они совпадали по времени с информационным бюллетенем от внешней системы о технических работах…
Ну-ка ну-ка… Давайте сделаем краткую передышку и пересчитаем, что мы насобирали уже сейчас, что должен уметь кэш:
Отсюда: кэш обязан уметь какое-то время хранить отрицательный результат. Наше наивное исходное предположение по сути подразумевает хранение отрицательного результата 0 секунд (но передачу этого самого отрицания всем, кто уже ждёт его). К сожалению, в случае с Memcache реализация нулевого времени ожидания весьма проблематична (оставлю как домашнее задание въедливому читателю; cовет: используйте механизм CAS; и да, в AppEngine можно использовать и Memcache и Memcached).
Мы же просто добавим сохранение отрицательного значения с 1 секундой жизни:
Казалось бы, ну теперь-то уже всё, и можно успокоиться? Как бы не так. Пока мы росли, наш любимый внешний сервис тоже рос, и в какой-то момент начал иногда тормозить и отвечать аж по секунде… И что примечательно – вместе с ним начал тормозить и наш сайт! Причем снова для всех! Но почему? Мы же всё кэшируем, в случае ошибок запоминаем ошибку и тем самым отпускаем всех ожидающих сразу, разве нет?
Что ж, мы можем вместо ожидания, добавить ветку else<> у условия вокруг memcache->add … Правда, стоит, наверное, вернуть последнее известное значение, да? Ведь мы кэшируем ровно затем, что мы согласны получить устаревшие сведения, если нет свежих; итак, еще одно требование к кэшу: пусть подтормаживает не более одного запроса.
Итак, мы снова победили: даже если тормозит внешний сервис, подтормаживает не более одной страницы… То есть как бы среднее время ответа сократилось, но пользователи всё равно немного недовольны.
Примечание: обычный PHP по умолчанию пишет сессии в файлы, блокируя параллельные запросы. Чтобы избежать этого поведения, можно передать в session_start параметр read_and_close либо принудительно закрывать через session_close сессию после совершения всех необходимых изменений, иначе тормозить будет не одна страница, а один пользователь: так как скрипт, обновляющий значение, будет блокировать открытие сессии другим запросом от того же пользователя. При исполнении на AppEngine по умолчанию включено хранение сессий в memcache, то есть без блокировок, поэтому будет проблема не так заметна.
Так вот, пользователи всё равно недовольны (ох уж эти пользователи!). Те, кто проводят времени больше всех на сайте, всё равно замечают эти короткие зависания. И их нисколько не радует осознание факта того, что так случается редко, и им просто не везёт. Придётся для данного случая сделать требование еще более жестким: никакие запросы не должны ждать ответа.
Что же мы можем сделать в такой постановке вопроса? Мы можем:
Итак, наш поставщик данных растёт, но не все его клиенты читают хабр, а потому они не используют правильного кэширования (если используют его вообще) и в какой-то момент начинают выдавать огромное количество запросов, из-за чего сервису становится плохо, и эпизодически он начинает отвечать не просто медленно, а очень медленно. До десятков секунд и более. Пользователи, конечно, быстро обнаружили, что можно нажать F5 или иначе перезагрузить страницу, и она появляется моментально – вот только страница снова начала упираться в бесплатные пределы, так как постоянно начали висеть процессы, просто ожидающие внешний ответ, но потребляющие наши ресурсы.
В числе прочих побочных эффектов участились случаи показа устаревшего курса. [Мда… в общем, представьте, что мы сейчас говорим не про наш случай, а про что-нибудь более сложное, где устаревание видно невооруженным глазом 🙂 на самом деле, даже в простом случае обязательно найдётся пользователь, который заметит такие совершенно неочевидные косяки].
Смотрите, что получается:
Итак, давайте подведём промежуточный итог. В бытовом понимании кэш:
Рассмотрим простейший случай:
3600. Что означает, что если отравление наступило на 5000 запросах в минуту, до тех пор, пока нагрузка не упадёт с 5000 до 3000 система нестабильна. То есть любой (даже пиковый!) всплеск трафика потенциально может вызвать длительную нестабильность системы.
Особенно прекрасно это смотрится, когда после новостной рассылки с какими-либо новыми функциями практически одновременно приходит волна пользователей. Эдакий маркетологический хабраэффект на регулярной основе.
Всё это не означает, что кэш нельзя или вредно использовать! О том, как правильно применять кэш для улучшения стабильности системы и как восстанавливаться от вышеупомянутой петли гистерезиса, мы поговорим в следующей статье, не переключайтесь.