home.social

#кэширование — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #кэширование, aggregated by home.social.

  1. Кэш результатов запросов в Postgres Pro: как ускорить часто выполняющиеся запросы и разгрузить базу

    Каждый раз, когда пользователь открывает страницу каталога или дашборд со статистикой, база данных заново считает одно и то же. Запрос к 800 тысячам строк ради одного числа — снова и снова. Расширение pgpro_result_cache в Postgres Pro Enterprise решает эту проблему на уровне СУБД: результат тяжёлого запроса сохраняется в разделяемой памяти и при повторном обращении возвращается за миллисекунду — без сканирования, без нагрузки на процессор, прозрачно для приложения. В этой статье разберём, как это работает, когда кэш действительно полезен и на что нужно обратить внимание при настройке.

    habr.com/ru/companies/postgres

    #кеширование #кеширования #база_данных #кэширование #кэширование_запросов #кэширование_данных #кэш #postgresql #postgres #postgres_pro

  2. Кэширование и трекинг. Как YOLO экономит время и нервы

    Случалось мне работать с CV: запускаешь сорокаминутное видео, YOLO честно находит людей, машины, собак. На двадцатой минуте падает сеть или, что хуже, камера наблюдения выходит из строя. Перезапускаешь. Модель снова смотрит те же кадры, снова инференс, трекинг ID, пошла пахота GPU… Так продолжаться не может — подключаю кеширование. Сегодня разбираемся, как совместить YOLO и кэширование Redis с трекингом объектов так, чтобы каждый кадр считался ровно один раз и чтобы информация не терялась. В конце будут готовые сниппеты, которые можно сразу скопировать и запустить.

    habr.com/ru/companies/ruvds/ar

    #redis #redis_как_настроить #yolo #yolo_как_настроить #yolo_redis #Кэширование #трекинг #кеш #cv #ruvds_статьи

  3. Кэширование и трекинг. Как YOLO экономит время и нервы

    Случалось мне работать с CV: запускаешь сорокаминутное видео, YOLO честно находит людей, машины, собак. На двадцатой минуте падает сеть или, что хуже, камера наблюдения выходит из строя. Перезапускаешь. Модель снова смотрит те же кадры, снова инференс, трекинг ID, пошла пахота GPU… Так продолжаться не может — подключаю кеширование. Сегодня разбираемся, как совместить YOLO и кэширование Redis с трекингом объектов так, чтобы каждый кадр считался ровно один раз и чтобы информация не терялась. В конце будут готовые сниппеты, которые можно сразу скопировать и запустить.

    habr.com/ru/companies/ruvds/ar

    #redis #redis_как_настроить #yolo #yolo_как_настроить #yolo_redis #Кэширование #трекинг #кеш #cv #ruvds_статьи

  4. Кэширование и трекинг. Как YOLO экономит время и нервы

    Случалось мне работать с CV: запускаешь сорокаминутное видео, YOLO честно находит людей, машины, собак. На двадцатой минуте падает сеть или, что хуже, камера наблюдения выходит из строя. Перезапускаешь. Модель снова смотрит те же кадры, снова инференс, трекинг ID, пошла пахота GPU… Так продолжаться не может — подключаю кеширование. Сегодня разбираемся, как совместить YOLO и кэширование Redis с трекингом объектов так, чтобы каждый кадр считался ровно один раз и чтобы информация не терялась. В конце будут готовые сниппеты, которые можно сразу скопировать и запустить.

    habr.com/ru/companies/ruvds/ar

    #redis #redis_как_настроить #yolo #yolo_как_настроить #yolo_redis #Кэширование #трекинг #кеш #cv #ruvds_статьи

  5. Кэширование и трекинг. Как YOLO экономит время и нервы

    Случалось мне работать с CV: запускаешь сорокаминутное видео, YOLO честно находит людей, машины, собак. На двадцатой минуте падает сеть или, что хуже, камера наблюдения выходит из строя. Перезапускаешь. Модель снова смотрит те же кадры, снова инференс, трекинг ID, пошла пахота GPU… Так продолжаться не может — подключаю кеширование. Сегодня разбираемся, как совместить YOLO и кэширование Redis с трекингом объектов так, чтобы каждый кадр считался ровно один раз и чтобы информация не терялась. В конце будут готовые сниппеты, которые можно сразу скопировать и запустить.

    habr.com/ru/companies/ruvds/ar

    #redis #redis_как_настроить #yolo #yolo_как_настроить #yolo_redis #Кэширование #трекинг #кеш #cv #ruvds_статьи

  6. Иллюзия памяти: как индустрия десятилетиями маскировала ограничения железа

    Сейчас память можно увеличить ползунком, Redis поднять одной командой, а состояние сервера оценить по строке в панели управления. Но за этим удобством стоит история компромиссов — сначала инженерам пришлось научить компьютеры работать так, будто памяти больше, чем есть на самом деле, потом диски собрали в массивы, горячие данные перенесли в Redis, а всю эту сложность спрятали за хостингом и managed-сервисами. Индустрия десятилетиями строила убедительные иллюзии поверх ограниченной физической реальности, но почему-то памяти до сих пор недостаточно. Как? Разобрал в статье. Читать

    habr.com/ru/companies/ruvds/ar

    #память #виртуальная_память #RAID #Redis #latency #distributed_systems #HBM #CXL #кэширование #ruvds_статьи

  7. Иллюзия памяти: как индустрия десятилетиями маскировала ограничения железа

    Сейчас память можно увеличить ползунком, Redis поднять одной командой, а состояние сервера оценить по строке в панели управления. Но за этим удобством стоит история компромиссов — сначала инженерам пришлось научить компьютеры работать так, будто памяти больше, чем есть на самом деле, потом диски собрали в массивы, горячие данные перенесли в Redis, а всю эту сложность спрятали за хостингом и managed-сервисами. Индустрия десятилетиями строила убедительные иллюзии поверх ограниченной физической реальности, но почему-то памяти до сих пор недостаточно. Как? Разобрал в статье. Читать

    habr.com/ru/companies/ruvds/ar

    #память #виртуальная_память #RAID #Redis #latency #distributed_systems #HBM #CXL #кэширование #ruvds_статьи

  8. Иллюзия памяти: как индустрия десятилетиями маскировала ограничения железа

    Сейчас память можно увеличить ползунком, Redis поднять одной командой, а состояние сервера оценить по строке в панели управления. Но за этим удобством стоит история компромиссов — сначала инженерам пришлось научить компьютеры работать так, будто памяти больше, чем есть на самом деле, потом диски собрали в массивы, горячие данные перенесли в Redis, а всю эту сложность спрятали за хостингом и managed-сервисами. Индустрия десятилетиями строила убедительные иллюзии поверх ограниченной физической реальности, но почему-то памяти до сих пор недостаточно. Как? Разобрал в статье. Читать

    habr.com/ru/companies/ruvds/ar

    #память #виртуальная_память #RAID #Redis #latency #distributed_systems #HBM #CXL #кэширование #ruvds_статьи

  9. Иллюзия памяти: как индустрия десятилетиями маскировала ограничения железа

    Сейчас память можно увеличить ползунком, Redis поднять одной командой, а состояние сервера оценить по строке в панели управления. Но за этим удобством стоит история компромиссов — сначала инженерам пришлось научить компьютеры работать так, будто памяти больше, чем есть на самом деле, потом диски собрали в массивы, горячие данные перенесли в Redis, а всю эту сложность спрятали за хостингом и managed-сервисами. Индустрия десятилетиями строила убедительные иллюзии поверх ограниченной физической реальности, но почему-то памяти до сих пор недостаточно. Как? Разобрал в статье. Читать

    habr.com/ru/companies/ruvds/ar

    #память #виртуальная_память #RAID #Redis #latency #distributed_systems #HBM #CXL #кэширование #ruvds_статьи

  10. Как я сделал трёхуровневый кэш сообщений в мессенджере на React Native — и что узнал по дороге

    Я делаю мессенджер ONEMIX на React Native. К моменту, когда я начал писать этот пост, в нём уже больше десятка экранов, групповые WebRTC-звонки через LiveKit, E2E на Double Ratchet + Sealed Sender, push-нотификации с cold-start навигацией и десктоп-версия на Electron. Но самым важным куском, который определяет ощущение от приложения, оказался не звук и не видео. А то, насколько быстро открывается чат. Если вы хоть раз делали список сообщений на React Native, вы знаете эту боль: открыл чат — пустой экран на 200–800 мс, потом подгрузка, потом скачок при докрутке наверх. В Telegram такого не бывает: открыл — мгновенно увидел последние сообщения, прокрутил наверх — никаких пустот, история идёт сплошной лентой. Я разбирался с этим несколько месяцев. В итоге пришёл к трёхуровневой архитектуре кэша, которую и хочу разобрать. Это не теория — это код, который сейчас работает в продакшне. Покажу как реализовано, какие были тупики и какие решения оказались критичными.

    habr.com/ru/articles/1033502/

    #react_native #sqlite #кэширование #expo #мессенджер #drizzle_orm #мобильная_разработка #производительность #архитектура #telegram

  11. Как я сделал трёхуровневый кэш сообщений в мессенджере на React Native — и что узнал по дороге

    Я делаю мессенджер ONEMIX на React Native. К моменту, когда я начал писать этот пост, в нём уже больше десятка экранов, групповые WebRTC-звонки через LiveKit, E2E на Double Ratchet + Sealed Sender, push-нотификации с cold-start навигацией и десктоп-версия на Electron. Но самым важным куском, который определяет ощущение от приложения, оказался не звук и не видео. А то, насколько быстро открывается чат. Если вы хоть раз делали список сообщений на React Native, вы знаете эту боль: открыл чат — пустой экран на 200–800 мс, потом подгрузка, потом скачок при докрутке наверх. В Telegram такого не бывает: открыл — мгновенно увидел последние сообщения, прокрутил наверх — никаких пустот, история идёт сплошной лентой. Я разбирался с этим несколько месяцев. В итоге пришёл к трёхуровневой архитектуре кэша, которую и хочу разобрать. Это не теория — это код, который сейчас работает в продакшне. Покажу как реализовано, какие были тупики и какие решения оказались критичными.

    habr.com/ru/articles/1033502/

    #react_native #sqlite #кэширование #expo #мессенджер #drizzle_orm #мобильная_разработка #производительность #архитектура #telegram

  12. Как я сделал трёхуровневый кэш сообщений в мессенджере на React Native — и что узнал по дороге

    Я делаю мессенджер ONEMIX на React Native. К моменту, когда я начал писать этот пост, в нём уже больше десятка экранов, групповые WebRTC-звонки через LiveKit, E2E на Double Ratchet + Sealed Sender, push-нотификации с cold-start навигацией и десктоп-версия на Electron. Но самым важным куском, который определяет ощущение от приложения, оказался не звук и не видео. А то, насколько быстро открывается чат. Если вы хоть раз делали список сообщений на React Native, вы знаете эту боль: открыл чат — пустой экран на 200–800 мс, потом подгрузка, потом скачок при докрутке наверх. В Telegram такого не бывает: открыл — мгновенно увидел последние сообщения, прокрутил наверх — никаких пустот, история идёт сплошной лентой. Я разбирался с этим несколько месяцев. В итоге пришёл к трёхуровневой архитектуре кэша, которую и хочу разобрать. Это не теория — это код, который сейчас работает в продакшне. Покажу как реализовано, какие были тупики и какие решения оказались критичными.

    habr.com/ru/articles/1033502/

    #react_native #sqlite #кэширование #expo #мессенджер #drizzle_orm #мобильная_разработка #производительность #архитектура #telegram

  13. Как я сделал трёхуровневый кэш сообщений в мессенджере на React Native — и что узнал по дороге

    Я делаю мессенджер ONEMIX на React Native. К моменту, когда я начал писать этот пост, в нём уже больше десятка экранов, групповые WebRTC-звонки через LiveKit, E2E на Double Ratchet + Sealed Sender, push-нотификации с cold-start навигацией и десктоп-версия на Electron. Но самым важным куском, который определяет ощущение от приложения, оказался не звук и не видео. А то, насколько быстро открывается чат. Если вы хоть раз делали список сообщений на React Native, вы знаете эту боль: открыл чат — пустой экран на 200–800 мс, потом подгрузка, потом скачок при докрутке наверх. В Telegram такого не бывает: открыл — мгновенно увидел последние сообщения, прокрутил наверх — никаких пустот, история идёт сплошной лентой. Я разбирался с этим несколько месяцев. В итоге пришёл к трёхуровневой архитектуре кэша, которую и хочу разобрать. Это не теория — это код, который сейчас работает в продакшне. Покажу как реализовано, какие были тупики и какие решения оказались критичными.

    habr.com/ru/articles/1033502/

    #react_native #sqlite #кэширование #expo #мессенджер #drizzle_orm #мобильная_разработка #производительность #архитектура #telegram

  14. От Infinispan до Postgres на 1 ТБ: эволюция кэша поиска отелей

    Всем привет! Хочу рассказать, как мы проектировали кэш поиска отелей и почему за полтора года прошли путь от Infinispan к managed Redis а затем к Postgres. По стеку java-21 , spring-boot-3 , 1 вендор отелей, расчетная нагрузка 1000 RPS и 10M запросов в сутки.

    habr.com/ru/articles/1030874/

    #PostreSQL #миграция #redis #infinispan #java #spring_boot #бронирование_отелей #кэширование

  15. Динамический ресайзинг изображений (Image Previewer)

    В данной статье рассматривается создание сервиса для динамического изменения размеров изображений с функциями проксирования и кэширования, а также приводится вариант его применения.

    habr.com/ru/articles/1028140/

    #ресайзинг #ресайз_картинок #image_preview #image_processing #image_resize #lru #кэширование #проксирование #cdn

  16. Динамический ресайзинг изображений (Image Previewer)

    В данной статье рассматривается создание сервиса для динамического изменения размеров изображений с функциями проксирования и кэширования, а также приводится вариант его применения.

    habr.com/ru/articles/1028140/

    #ресайзинг #ресайз_картинок #image_preview #image_processing #image_resize #lru #кэширование #проксирование #cdn

  17. Динамический ресайзинг изображений (Image Previewer)

    В данной статье рассматривается создание сервиса для динамического изменения размеров изображений с функциями проксирования и кэширования, а также приводится вариант его применения.

    habr.com/ru/articles/1028140/

    #ресайзинг #ресайз_картинок #image_preview #image_processing #image_resize #lru #кэширование #проксирование #cdn

  18. Динамический ресайзинг изображений (Image Previewer)

    В данной статье рассматривается создание сервиса для динамического изменения размеров изображений с функциями проксирования и кэширования, а также приводится вариант его применения.

    habr.com/ru/articles/1028140/

    #ресайзинг #ресайз_картинок #image_preview #image_processing #image_resize #lru #кэширование #проксирование #cdn

  19. Я написал кэш для API на Go за 120 строк кода — и PostgreSQL перестал быть узким местом (ускорение в 7 раз)

    Если API начинает тормозить, первое решение обычно очевидно — добавить Redis. Но иногда оказывается, что проблема гораздо проще. В одном из сервисов PostgreSQL начал упираться в повторяющиеся запросы. Одни и те же данные запрашивались тысячами клиентов. Практически каждый HTTP-запрос заканчивался одинаковым SQL-запросом. Любопытство победило — вместо готового решения был написан небольшой кэш прямо внутри сервиса. На это ушло примерно полчаса. Результат оказался неожиданным: некоторые эндпоинты ускорились почти в 7 раз . Вот, почему это произошло и как работает такая схема.

    habr.com/ru/articles/1012928/

    #Go #Golang #postgresq #кэширование #postgresql #SQL_оптимизация #ускорение_вебсервисов

  20. HTTP-кеширование изнутри: ETag, Last-Modified и эвристика браузера

    Как браузер принимает решение о кешировании? Что такое условный HTTP-запрос? Как возникает 304 Not Modified? Как устроен принудительный запрос ресурса, минуя кеш? Если эти вопросы для вас актуальны, прошу на огонёк. Изложение намеренно подробное: статья адресована и тем, кто только начинает путь в веб-разработке, и тем, кто просто хочет закрыть отдельные пробелы в понимании механизма кеширования. Скажем "нет" слепому копированию заголовков кеширования. Погружаемся

    habr.com/ru/articles/1010594/

    #сети #http #кеширование #кэширование #rfc9111 #starlette #uvicorn #httpсервер #браузеры #rfc9110

  21. HTTP-кеширование изнутри: ETag, Last-Modified и эвристика браузера

    Как браузер принимает решение о кешировании? Что такое условный HTTP-запрос? Как возникает 304 Not Modified? Как устроен принудительный запрос ресурса, минуя кеш? Если эти вопросы для вас актуальны, прошу на огонёк. Изложение намеренно подробное: статья адресована и тем, кто только начинает путь в веб-разработке, и тем, кто просто хочет закрыть отдельные пробелы в понимании механизма кеширования. Скажем "нет" слепому копированию заголовков кеширования. Погружаемся

    habr.com/ru/articles/1010594/

    #сети #http #кеширование #кэширование #rfc9111 #starlette #uvicorn #httpсервер #браузеры #rfc9110

  22. HTTP-кеширование изнутри: ETag, Last-Modified и эвристика браузера

    Как браузер принимает решение о кешировании? Что такое условный HTTP-запрос? Как возникает 304 Not Modified? Как устроен принудительный запрос ресурса, минуя кеш? Если эти вопросы для вас актуальны, прошу на огонёк. Изложение намеренно подробное: статья адресована и тем, кто только начинает путь в веб-разработке, и тем, кто просто хочет закрыть отдельные пробелы в понимании механизма кеширования. Скажем "нет" слепому копированию заголовков кеширования. Погружаемся

    habr.com/ru/articles/1010594/

    #сети #http #кеширование #кэширование #rfc9111 #starlette #uvicorn #httpсервер #браузеры #rfc9110

  23. HTTP-кеширование изнутри: ETag, Last-Modified и эвристика браузера

    Как браузер принимает решение о кешировании? Что такое условный HTTP-запрос? Как возникает 304 Not Modified? Как устроен принудительный запрос ресурса, минуя кеш? Если эти вопросы для вас актуальны, прошу на огонёк. Изложение намеренно подробное: статья адресована и тем, кто только начинает путь в веб-разработке, и тем, кто просто хочет закрыть отдельные пробелы в понимании механизма кеширования. Скажем "нет" слепому копированию заголовков кеширования. Погружаемся

    habr.com/ru/articles/1010594/

    #сети #http #кеширование #кэширование #rfc9111 #starlette #uvicorn #httpсервер #браузеры #rfc9110

  24. Про LRU-кэш (в том числе — на собеседовании) — 3 способа реализации

    LRU-кэш это популярная структура данных, хранящая пары ключ-значение, но в отличие от обычной "мэпы" ограниченная по размеру - более старые (least-recently-used) записи пропадают при переполнении. Он популярен и на собеседованиях (видимо как альтернатива заезженным алгоритмам сортировок). Собственно под влиянием небольшого спора с интервьюером и родилась эта заметка :) Огорчает, что обычно подразумевают конкретно "классическую" реализацию с мэпой и двухсвязным списком. В некоторых языках (Java) даже в стандартную либу входит такая комбинация ( LinkedHashMap ). А на деле способов реализации можно найти или придумать много - в этом смысле задачка тем и хороша что простор для "пошевелить мозгами" очень большой. Здесь мы покажем как от "классического" способа прийти к двум более простым вариантам (без списка - "с таймстемпами" или "с поколениями"). Как в инженерной практике так и на собеседовании - чем проще, тем лучше. И мы проанализируем и проверим, проседает ли быстродействие (а может наоборот улучшается?) так проседает или улучшается?

    habr.com/ru/articles/995916/

    #структуры_данных #алгоритмы #кэширование #списки #хэштаблицы

  25. Про LRU-кэш (в том числе — на собеседовании) — 3 способа реализации

    LRU-кэш это популярная структура данных, хранящая пары ключ-значение, но в отличие от обычной "мэпы" ограниченная по размеру - более старые (least-recently-used) записи пропадают при переполнении. Он популярен и на собеседованиях (видимо как альтернатива заезженным алгоритмам сортировок). Собственно под влиянием небольшого спора с интервьюером и родилась эта заметка :) Огорчает, что обычно подразумевают конкретно "классическую" реализацию с мэпой и двухсвязным списком. В некоторых языках (Java) даже в стандартную либу входит такая комбинация ( LinkedHashMap ). А на деле способов реализации можно найти или придумать много - в этом смысле задачка тем и хороша что простор для "пошевелить мозгами" очень большой. Здесь мы покажем как от "классического" способа прийти к двум более простым вариантам (без списка - "с таймстемпами" или "с поколениями"). Как в инженерной практике так и на собеседовании - чем проще, тем лучше. И мы проанализируем и проверим, проседает ли быстродействие (а может наоборот улучшается?) так проседает или улучшается?

    habr.com/ru/articles/995916/

    #структуры_данных #алгоритмы #кэширование #списки #хэштаблицы

  26. Про LRU-кэш (в том числе — на собеседовании) — 3 способа реализации

    LRU-кэш это популярная структура данных, хранящая пары ключ-значение, но в отличие от обычной "мэпы" ограниченная по размеру - более старые (least-recently-used) записи пропадают при переполнении. Он популярен и на собеседованиях (видимо как альтернатива заезженным алгоритмам сортировок). Собственно под влиянием небольшого спора с интервьюером и родилась эта заметка :) Огорчает, что обычно подразумевают конкретно "классическую" реализацию с мэпой и двухсвязным списком. В некоторых языках (Java) даже в стандартную либу входит такая комбинация ( LinkedHashMap ). А на деле способов реализации можно найти или придумать много - в этом смысле задачка тем и хороша что простор для "пошевелить мозгами" очень большой. Здесь мы покажем как от "классического" способа прийти к двум более простым вариантам (без списка - "с таймстемпами" или "с поколениями"). Как в инженерной практике так и на собеседовании - чем проще, тем лучше. И мы проанализируем и проверим, проседает ли быстродействие (а может наоборот улучшается?) так проседает или улучшается?

    habr.com/ru/articles/995916/

    #структуры_данных #алгоритмы #кэширование #списки #хэштаблицы

  27. Про LRU-кэш (в том числе — на собеседовании) — 3 способа реализации

    LRU-кэш это популярная структура данных, хранящая пары ключ-значение, но в отличие от обычной "мэпы" ограниченная по размеру - более старые (least-recently-used) записи пропадают при переполнении. Он популярен и на собеседованиях (видимо как альтернатива заезженным алгоритмам сортировок). Собственно под влиянием небольшого спора с интервьюером и родилась эта заметка :) Огорчает, что обычно подразумевают конкретно "классическую" реализацию с мэпой и двухсвязным списком. В некоторых языках (Java) даже в стандартную либу входит такая комбинация ( LinkedHashMap ). А на деле способов реализации можно найти или придумать много - в этом смысле задачка тем и хороша что простор для "пошевелить мозгами" очень большой. Здесь мы покажем как от "классического" способа прийти к двум более простым вариантам (без списка - "с таймстемпами" или "с поколениями"). Как в инженерной практике так и на собеседовании - чем проще, тем лучше. И мы проанализируем и проверим, проседает ли быстродействие (а может наоборот улучшается?) так проседает или улучшается?

    habr.com/ru/articles/995916/

    #структуры_данных #алгоритмы #кэширование #списки #хэштаблицы

  28. ​Kubernetes и Docker

    Различия и сходства между двумя наиболее влиятельными проектами с открытым исходным кодом в области облачных вычислений.

    Сравнение Kubernetes и Docker — тема, которая неоднократно поднималась в индустрии облачных вычислений. Независимо от того, являетесь ли вы неспециалистом и нуждаетесь в кратком ознакомлении...

    #DST #DSTGlobal #ДСТ #ДСТГлобал #Kubernetes #Docker #контейнеры #оркестровка #вебсервер #кэширование #Redis #pod

    Источник: dstglobal.ru/club/1158-kuberne

  29. LLM‑разметка в поиске: от эксперимента к инструменту

    Привет! Меня зовут Александр Баранов, я аналитик данных в команде поиска Купера. Цель этого рассказа, поделиться наработками в деле оптимизации разметки текстовых данных при помощи большой языковой модели (LLM). Если после прочтения вы захотите что-то добавить или спросить, буду только рад!

    habr.com/ru/companies/kuper/ar

    #llm #llmразметка #ml #машинное_обучение #промпты #батчинг #кэширование

  30. Как подружить Spring Boot и Redis для эффективного кэширования

    Когда проект вырастает из простых задач, каждый повторный запрос к базе данных превращается в бесполезную нагрузку на диски и процессор. И вместо того чтобы заставлять систему раз за разом искать, фильтровать и считывать одни и те же данные, логичнее отдавать их напрямую из оперативной памяти. В этой статье разберем, как эффективно внедрить слой кэширования на связке Redis + Spring Boot 3 / Java 21. Пробежимся по базовым командам Redis, реализуем cache‑aside вручную и через аннотации Spring Cache, а затем разберем два полезных паттерна для микросервисов: Fixed‑Window Rate Limiter и распределенный лок. Не пугайтесь сложных терминов, все понятным языком рассказал под катом.

    habr.com/ru/companies/selectel

    #selectel #Redis #Spring_Boot_3 #Java_21 #кэширование #распределенный_лок #Spring_Cache #cache_aside #команды_redis

  31. Как подружить Spring Boot и Redis для эффективного кэширования

    Когда проект вырастает из простых задач, каждый повторный запрос к базе данных превращается в бесполезную нагрузку на диски и процессор. И вместо того чтобы заставлять систему раз за разом искать, фильтровать и считывать одни и те же данные, логичнее отдавать их напрямую из оперативной памяти. В этой статье разберем, как эффективно внедрить слой кэширования на связке Redis + Spring Boot 3 / Java 21. Пробежимся по базовым командам Redis, реализуем cache‑aside вручную и через аннотации Spring Cache, а затем разберем два полезных паттерна для микросервисов: Fixed‑Window Rate Limiter и распределенный лок. Не пугайтесь сложных терминов, все понятным языком рассказал под катом.

    habr.com/ru/companies/selectel

    #selectel #Redis #Spring_Boot_3 #Java_21 #кэширование #распределенный_лок #Spring_Cache #cache_aside #команды_redis

  32. Как подружить Spring Boot и Redis для эффективного кэширования

    Когда проект вырастает из простых задач, каждый повторный запрос к базе данных превращается в бесполезную нагрузку на диски и процессор. И вместо того чтобы заставлять систему раз за разом искать, фильтровать и считывать одни и те же данные, логичнее отдавать их напрямую из оперативной памяти. В этой статье разберем, как эффективно внедрить слой кэширования на связке Redis + Spring Boot 3 / Java 21. Пробежимся по базовым командам Redis, реализуем cache‑aside вручную и через аннотации Spring Cache, а затем разберем два полезных паттерна для микросервисов: Fixed‑Window Rate Limiter и распределенный лок. Не пугайтесь сложных терминов, все понятным языком рассказал под катом.

    habr.com/ru/companies/selectel

    #selectel #Redis #Spring_Boot_3 #Java_21 #кэширование #распределенный_лок #Spring_Cache #cache_aside #команды_redis

  33. Как подружить Spring Boot и Redis для эффективного кэширования

    Когда проект вырастает из простых задач, каждый повторный запрос к базе данных превращается в бесполезную нагрузку на диски и процессор. И вместо того чтобы заставлять систему раз за разом искать, фильтровать и считывать одни и те же данные, логичнее отдавать их напрямую из оперативной памяти. В этой статье разберем, как эффективно внедрить слой кэширования на связке Redis + Spring Boot 3 / Java 21. Пробежимся по базовым командам Redis, реализуем cache‑aside вручную и через аннотации Spring Cache, а затем разберем два полезных паттерна для микросервисов: Fixed‑Window Rate Limiter и распределенный лок. Не пугайтесь сложных терминов, все понятным языком рассказал под катом.

    habr.com/ru/companies/selectel

    #selectel #Redis #Spring_Boot_3 #Java_21 #кэширование #распределенный_лок #Spring_Cache #cache_aside #команды_redis

  34. Про то, как я Storage Access Framework укрощал, да файлы в хранилище приручал

    В начале было приложение. И было это приложение для цифровой подписи. Работало оно просто: подписываешь документы на смартфоне, не думая о каких-либо дополнительных токенах. Все упаковано в телефон — и сертификаты, и библиотеки. Процесс знакомый: авторизовался, загрузил файл, подписал. Но вот однажды пользователи стали жаловаться, что не могут найти ранее подписанные документы. Бывало, пользователь подписал файл, долго к нему не возвращался, а спустя время уже не смог его отыскать. Переустановил приложение или авторизовался с другого устройства, и все файлы как в воду канули. Меня зовут Георгий Левченко, я Android-разработчик в ПСБ. Начал я искать источник бед пользовательских. Оказалось, виной всему было то, что все файлы хранились в кэш-директории приложения. Понял я: чтобы файлы не пропадали, им нужен менеджмент для файлов. Отыскался у Android для таких целей готовый инструмент — Storage Access Framework (SAF), он служит для доступа к файлам через стандартный интерфейс без управления разрешениями вручную. Поведаю под катом, как я решал с его помощью эту задачу.

    habr.com/ru/companies/psb/arti

    #storage_access_framework #android #android_development #разработка_приложений #кэширование #кэширование_данных

  35. Как перенести Ghost CMS на vps с панелью FASTPANEL

    Появилась необходимость перенести уже установленный ghost cms на другой vps, на котором уже установлена FASTPANEL. Вдохновившись статьей " Установка Ghost на сервер под управлением ispmanager ", я подумал, что это будет просто. На деле же оказалось несколько сложнее. Конечно можно установить в docker контейнер и не париться с панелью. Но я решил остановиться на варианте без контейнеризации. В этой статье у меня был 1 чистый сервер на котором был установлен ghost cms без докера. Второй сервер уже в работе с установленной FASTPANEL. Начнем пожалуй с бэкапов.

    habr.com/ru/articles/981230/

    #ghost #cms #ubuntu #nginx #fastpanel #npm #mailgun #smtp #headers #кэширование

  36. Как перенести Ghost CMS на vps с панелью FASTPANEL

    Появилась необходимость перенести уже установленный ghost cms на другой vps, на котором уже установлена FASTPANEL. Вдохновившись статьей " Установка Ghost на сервер под управлением ispmanager ", я подумал, что это будет просто. На деле же оказалось несколько сложнее. Конечно можно установить в docker контейнер и не париться с панелью. Но я решил остановиться на варианте без контейнеризации. В этой статье у меня был 1 чистый сервер на котором был установлен ghost cms без докера. Второй сервер уже в работе с установленной FASTPANEL. Начнем пожалуй с бэкапов.

    habr.com/ru/articles/981230/

    #ghost #cms #ubuntu #nginx #fastpanel #npm #mailgun #smtp #headers #кэширование

  37. Как перенести Ghost CMS на vps с панелью FASTPANEL

    Появилась необходимость перенести уже установленный ghost cms на другой vps, на котором уже установлена FASTPANEL. Вдохновившись статьей " Установка Ghost на сервер под управлением ispmanager ", я подумал, что это будет просто. На деле же оказалось несколько сложнее. Конечно можно установить в docker контейнер и не париться с панелью. Но я решил остановиться на варианте без контейнеризации. В этой статье у меня был 1 чистый сервер на котором был установлен ghost cms без докера. Второй сервер уже в работе с установленной FASTPANEL. Начнем пожалуй с бэкапов.

    habr.com/ru/articles/981230/

    #ghost #cms #ubuntu #nginx #fastpanel #npm #mailgun #smtp #headers #кэширование

  38. Как перенести Ghost CMS на vps с панелью FASTPANEL

    Появилась необходимость перенести уже установленный ghost cms на другой vps, на котором уже установлена FASTPANEL. Вдохновившись статьей " Установка Ghost на сервер под управлением ispmanager ", я подумал, что это будет просто. На деле же оказалось несколько сложнее. Конечно можно установить в docker контейнер и не париться с панелью. Но я решил остановиться на варианте без контейнеризации. В этой статье у меня был 1 чистый сервер на котором был установлен ghost cms без докера. Второй сервер уже в работе с установленной FASTPANEL. Начнем пожалуй с бэкапов.

    habr.com/ru/articles/981230/

    #ghost #cms #ubuntu #nginx #fastpanel #npm #mailgun #smtp #headers #кэширование

  39. Инженерия UX и производительности: от ядра к периферии

    Очень краткий рассказ про семь проектов, построенных одним инженером на унаследованной платформе. Легаси. Много дополнительных модулей. Очень медленная загрузка страниц. Визуально сайт выглядит морально устаревшим. Мобильного приложения нет. Пользователи есть, пользуются, но страдают (с большими экранами очень страдают). Хотелось не просто ускорить метрики, а выстроить полноценную систему, которая бы работала для пользователя как обычное SPA-приложение: быстро, плавно, визуально современно, а главное с уважением к пользователям.

    habr.com/ru/articles/980970/

    #производительность #оптимизация #ux #pwa #opencart #serviceworker #кэширование #инжиниринг #fullstack #selfcontained_app

  40. [Перевод] Шпаргалка по HTTP-кэшированию

    В этой статье я изложу то, что почерпнул из чтения RFC 9111 (2022 год) — последнего стандарта по HTTP-кэшингу. Он определяет HTTP-заголовок Cache-Control , предписывающий способ хранения и повторного использования HTTP-запросов касательно не только кэша браузера, но и всех промежуточных кэшей наподобие прокси и CDN, которые могут существовать между клиентом и исходным сервером.

    habr.com/ru/articles/980514/

    #кэширование #cdn #кэширование_запросов #кэш

  41. Пишем свою in-memory базу на Go, ускоряем поиск отелей в десятки раз

    Если вы когда-либо строили высоконагруженные системы поиска, то знаете, что в какой-то момент узким местом становится не код, а сама архитектура. Поиск доступных отелей — как раз тот случай: миллиарды «ночей», десятки тысяч RPS, постоянные обновления календарей, строгая консистентность и высокая цена любой ошибки. Старый стек на Python + Postgres + Redis долго тянул, но однажды стал «тормозить» настолько, что оптимизировать дальше было невозможно — SQL-запросы разрастались, реплики множились, latency прыгала до 60 секунд, а кэширование превращалось в источник инцидентов. Так мы пришли к идее построить

    habr.com/ru/companies/ostrovok

    #golang #inmemory #database #postgresql #highload #Flatbuffers #Protobuf #кэширование #микросервисы

  42. Ваш кэш в .NET не защищён от cache stampede

    У вас есть запрос к базе данных или к платному API, и вы кэшируете результат? Для кэша используете ConcurrentDictionary или MemoryCache ? У кэша, построенного на этих классах, есть одна неприятная проблема: отсутствие защиты от давки кэша (cache stampede). При определённой нагрузке кэш будет многократно выполнять один и тот же запрос из-за отсутствия координации между потоками и репликами. В этой статье я наглядно покажу, как давка кэша влияет на C# приложение и что с этим делать.

    habr.com/ru/articles/977498/

    #c# #net #кэширование #распределенные_системы #высокая_производительность

  43. Миссия выполнима: как мы добились актуальности двух тысяч кешей

    Привет! Меня зовут Влад, и я разрабатываю сердце витрины Ozon — сервис product-facade. Пару лет назад мы уже делились нашим опытом в этой статье , но с тех пор многое изменилось: выросли нагрузки, появились новые фичи и оптимизации, система стала сложнее и надёжнее. Прежде чем перейти непосредственно к актуальности кешей, давайте разберёмся, почему это так важно. Представьте: вы добавляете товар в корзину, но что-то пошло не так, и покупку совершить не удаётся — склад больше не возит в ваш ПВЗ. Даже 0.1% таких ошибок — это тысячи недовольных пользователей каждую секунду. А когда что-то массово меняется, разработчики вынуждены расследовать инцидент, чтобы понять, что проблема была всего лишь в устаревших кешах.

    habr.com/ru/companies/ozontech

    #Redis #Valkey #кэширование #инвалидация_кеша #инвалидация_кэша #архитектура_системы #ozon_tech

  44. Кэширование и всё, что с ним связано

    Привет, хабр! Сегодня хочу рассказать об одной технологии, которая сопровождает нас буквально везде. От процессора в вашем смартфоне до глобальных сервисов вроде YouTube. Речь пойдет о кэшировании. Да, я знаю, тема кажется избитой. Но когда я впервые осознала, что одни и те же принципы работают на всех уровнях, от крошечного L1-кэша до распределенного Redis-кластера — это было похоже на инженерное просветление. Предлагаю и вам пройти этот путь вместе со мной.

    habr.com/ru/companies/timeweb/

    #кэш #кэшпамять #кэширование #redis #cdn #timeweb_статьи

  45. Кэширование и всё, что с ним связано

    Привет, хабр! Сегодня хочу рассказать об одной технологии, которая сопровождает нас буквально везде. От процессора в вашем смартфоне до глобальных сервисов вроде YouTube. Речь пойдет о кэшировании. Да, я знаю, тема кажется избитой. Но когда я впервые осознала, что одни и те же принципы работают на всех уровнях, от крошечного L1-кэша до распределенного Redis-кластера — это было похоже на инженерное просветление. Предлагаю и вам пройти этот путь вместе со мной.

    habr.com/ru/companies/timeweb/

    #кэш #кэшпамять #кэширование #redis #cdn #timeweb_статьи

  46. Кэширование и всё, что с ним связано

    Привет, хабр! Сегодня хочу рассказать об одной технологии, которая сопровождает нас буквально везде. От процессора в вашем смартфоне до глобальных сервисов вроде YouTube. Речь пойдет о кэшировании. Да, я знаю, тема кажется избитой. Но когда я впервые осознала, что одни и те же принципы работают на всех уровнях, от крошечного L1-кэша до распределенного Redis-кластера — это было похоже на инженерное просветление. Предлагаю и вам пройти этот путь вместе со мной.

    habr.com/ru/companies/timeweb/

    #кэш #кэшпамять #кэширование #redis #cdn #timeweb_статьи

  47. Кэширование и всё, что с ним связано

    Привет, хабр! Сегодня хочу рассказать об одной технологии, которая сопровождает нас буквально везде. От процессора в вашем смартфоне до глобальных сервисов вроде YouTube. Речь пойдет о кэшировании. Да, я знаю, тема кажется избитой. Но когда я впервые осознала, что одни и те же принципы работают на всех уровнях, от крошечного L1-кэша до распределенного Redis-кластера — это было похоже на инженерное просветление. Предлагаю и вам пройти этот путь вместе со мной.

    habr.com/ru/companies/timeweb/

    #кэш #кэшпамять #кэширование #redis #cdn #timeweb_статьи

  48. Клиентское кэширование в Angie

    Один из самых простых способов ускорить работу сайтов и снизить нагрузку на инфраструктуру — корректно использовать клиентское кэширование. Механизм одновременно и простой, и сложный. В этой статье посмотрим, как можно управлять клиентским кэшированием в веб‑сервере Angie.

    habr.com/ru/articles/960524/

    #angie #nginx #кэширование #заголовки_кэширования #клиентская_оптимизация

  49. [Перевод] Полное руководство по HTTP-кэшированию. Часть 2

    Кэширование — скрытый двигатель, на котором держится веб. Именно оно делает сайты быстрыми, надежными и относительно недорогими в обслуживании. При правильной настройке кэширование снижает задержки, разгружает серверы и позволяет даже хрупкой инфраструктуре выдерживать резкие всплески трафика. При неправильной настройке или полном отсутствии кэширования сайты работают медленно, остаются уязвимыми для атак и обходятся очень дорого. В основе кэширования лежит сокращение лишней работы. Каждый раз, когда браузер, CDN или прокси обращается к серверу за ресурсом, который не изменился, впустую тратятся время и трафик. Когда сервер заново формирует или повторно отдает идентичный контент, это лишь добавляет нагрузки и увеличивает затраты. А при пиковом трафике — например, в "черную пятницу", во время вирусной публикации или DDoS-атаки — такие ошибки стремительно накапливаются и приводят к сбоям всей системы.

    habr.com/ru/companies/timeweb/

    #cache #caching #http #кэш #кэширование #nginx #redis #cdn #timeweb_статьи_перевод #кеширование

  50. [Перевод] Полное руководство по HTTP-кэшированию. Часть 1

    Кэширование — скрытый двигатель, на котором держится веб. Именно оно делает сайты быстрыми, надежными и относительно недорогими в обслуживании. При правильной настройке кэширование снижает задержки, разгружает серверы и позволяет даже хрупкой инфраструктуре выдерживать резкие всплески трафика. При неправильной настройке или полном отсутствии кэширования сайты работают медленно, остаются уязвимыми для атак и обходятся очень дорого. В основе кэширования лежит сокращение лишней работы. Каждый раз, когда браузер, CDN или прокси обращается к серверу за ресурсом, который не изменился, впустую тратятся время и трафик. Когда сервер заново формирует или повторно отдает идентичный контент, это лишь добавляет нагрузки и увеличивает затраты. А при пиковом трафике — например, в "черную пятницу", во время вирусной публикации или DDoS-атаки — такие ошибки стремительно накапливаются и приводят к сбоям всей системы.

    habr.com/ru/companies/timeweb/

    #cache #caching #http #кеширование #кэш #кэширование #nginx #redis #cdn #timeweb_статьи_перевод