Всем привет! Меня зовут Алексей Майшев, я работаю Go-инженером в Авито. В этой статье рассказываю, как мы с командой независимых разработчиков 9 месяцев проектировали и разрабатывали кэш-библиотеку следующего поколения для Go — otter.
Рубрика «cache»
Как спроектировать кэш-библиотеку нового поколения и не умереть?
2025-09-04 в 13:16, admin, рубрики: cache, github, Go, golang, library, ristretto, библиотеки для go, кэш-библиотекаВекторный кэш: делаем умные ответы еще быстрее
2025-07-25 в 11:11, admin, рубрики: AI, cache, rag, redis, оптимизация, поисковая оптимизация, поисковые системыНаводим порядок в загрузке данных Angular с помощью резолверов
2025-06-27 в 5:15, admin, рубрики: angular, cache, javascript, perfomance, resolver, TypeScript, web, zodВсем привет! Сегодня хочу разобрать кейс, с которым сталкивается почти каждый Angular-разработчик на существующем проекте.
Часто в компонентах можно встретить такой код:
public user: User | null = null;
public posts: Post[] | null = null;
public stats: Stats | null = null;
constructor(private readonly apiService: ApiService) {}
public ngOnInit(): void {
this.apiService.getUser().subscribe((user) => this.user = user);
this.apiService.getPosts().subscribe((posts) => this.posts = posts);
this.apiService.getStats().subscribe((stats) => this.stats = stats);
}
Все загрузки данных у нас происходят в ngOnInitЧитать полностью »
Синхронизация кеша в распределенных Go (и не только) приложениях с помощью Kafka
2025-05-13 в 6:16, admin, рубрики: cache, golangЗаранее оговорюсь, всё что описано в данной статье, касается runtime (децентрализованного) кеша.
Зачем нам такое может понадобиться? По нескольким причинам:
-
У нас высокие требования к скорости работы приложения, дополнительные запросы к централизованному кешу нежелательны, с целью избежать сетевых взаимодействий.
-
Компания не знает как готовить отказоустойчивый кеш (например redis), или просто не хочет/не может затягивать новую технологию, усложнять инфраструктуру.
Кэширование с FeignClient: как ускорить микросервисы и стать героем проекта
2024-11-20 в 20:00, admin, рубрики: cache, feignclient, java, spring boot, кэшированиеВступление
Привет! Вы когда-нибудь задумывались, почему некоторые запросы в микросервисах ощущаются как поездка на «старой электричке»? Казалось бы, есть FeignClient — мощный и удобный инструмент для общения сервисов, но внезапно задержки растут, а коллеги начинают замечать, что ваше API «тормозит».
Я расскажу, как я решил эту проблему, добавив кэширование с помощью Caffeine Cache. После этого мой сервис стал выдавать данные быстрее, чем их запрашивали (шутка, но почти правда).
Готовы? Тогда поехали.
Стек технологий
Для реализации использовались следующие инструменты:
-
Java 21Читать полностью »
REDIS: такой простой и такой сложный
2024-09-09 в 6:19, admin, рубрики: cache, caching, database design, high availability, high performance, highload, redis, архитектура, базы данныхМеня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint Highload++ 2024, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.
Что такое Redis
О кэшах в микроконтроллерах ARM
2020-11-04 в 15:23, admin, рубрики: armv7-m, cache, embox, mcu, open source, stm32, Блог компании Embox, программирование микроконтроллеров, Процессоры, системное программирование
Привет!
В предыдущей статье мы для ускорения графики на микроконтроллере в Embox применяли процессорный кэш. При этом мы использовали режим «write-through». Тогда мы писали о некоторых преимуществах и недостатках связанных с «write-through» режимом, но это был лишь беглый обзор. В этой статье я, как и обещал, хочу подробней рассмотреть типы кэшей в ARM микроконтроллерах, а также сравнить их. Конечно, все это будет рассмотрено с точки зрения программиста, и вдаваться в детали работы контроллера памяти в данной статье мы не планируем.
Читать полностью »
Планирование в Go: Часть I — Планировщик ОС
2019-11-30 в 15:46, admin, рубрики: cache, cpu, Go, golang, threadsПривет! Представляю вашему вниманию перевод статьи «Scheduling In Go: Part I — OS Scheduler» автора Билла Кеннеди, о том, как работает внутренний планировщик Go.
Это первый пост в серии из трех частей, который даст представление о механике и семантике, лежащей в основе планировщика в Go. Этот пост посвящен планировщику операционной системы. Начнем!
Внутренняя архитектура планировщика Go позволяет вашим многопоточным программам быть более эффективными и производительными. Важно иметь общее понимание того, как работают планировщики ОС и Go для правильного проектирования многопоточного программного обеспечения. Я опишу достаточно деталей, чтобы вы могли наглядно представить, как все работает, чтобы на практике принимать лучшие решения.
Читать полностью »
В данной статье разбор простейшей реализации RAM на языке Verilog.
Перед тем, как перейти к разбору кода, рекомендуется изучить базовый синтаксис языка Verilog.
Здесь вы можете найти обучающие материалы.
Читать полностью »
Как работают веб-приложения
2019-05-01 в 18:59, admin, рубрики: cache, django, http, javascript framework, SPA, Разработка веб-сайтовЭто статья для начинающих разработчиков и тех, кто хочет немного ориентироваться в терминах и технологиях современных веб-приложений. В статье написано о том, чем веб-приложения отличаются от сайтов, какие бывают веб-приложения, из чего они состоят и как работают.
Читать полностью »

