Рубрика «caching»
Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций
2026-04-30 в 8:15, admin, рубрики: asyncio, caching, django, dsl, orm, python, query cache, redis, sql, sql-инъекцияПолный курс Full‑Stack магии: от идеи и фреймворков до DevOps и SEO
2025-10-02 в 15:46, admin, рубрики: caching, devops, docker, fullstack-разработчик, graphql, Microservices, node.js, prometheus, restВ мире веб‑разработки просто написать «Hello, world» уже мало – сегодня требуется создавать масштабируемые приложения, которые удобно поддерживать, легко расширять, с ними приятно работать пользователям и не нервничают DevOps‑команды. Давайте пройдёмся по всем этапам создания веб‑проекта — от архитектуры и API до деплоя, мониторинга и SEO. Статья длинная и подробная; вооружайтесь чайником, а лучше – редактором кода, потому что будет много примеров.
1. Архитектура: монолит или микросервисы?
Начиная новый проект, стоит сразу определить структуру: монолит или микросервисная архитектура.
Читать полностью »
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
Измеряем производительность кэша Apache Ignite
2016-09-28 в 10:50, admin, рубрики: Apache Ignite, big data, caching, java, jmh, performance, высокая производительность, ПрограммированиеПосле того, как в предыдущих статьях данной серии обзоров распределённого Java-фреймворка Apache Ignite мы сделали первые шаги, познакомились с основными принципами построения топологии и даже сделали стартер для Spring Boot, неизбежно встаёт вопрос о кэшировании, которое является одной из основных функций Ignite. Прежде всего, хотелось бы понять, нужно ли оно, когда библиотек для кэширования на Java и так полным-полно. Тем, что предоставляется реализация стандарта JCache (JSR 107) и возможность распределённого кэширования в наше время удивить сложно. Поэтому прежде чем (или вместо того чтобы) рассматривать функциональные возможности кэша Apache Ignite, мне бы хотелось посмотреть, насколько он быстр.

Для исследования применялся бенчмарк cache2k-benchmark, разработанный с целью доказательства того, что у библиотеки cache2k кэш самый быстрый. Вот заодно и проверим. Настоящая статья не преследует цель всеобъемлющего тестирования производительности, или хотя бы научно достоверного, пусть этим занимаются разработчики Apache Ignite. Мы просто посмотрим на порядок величин, основные особенности и взаимное расположение в рейтинге, в котором будут ещё cache2k и нативный кэш на ConcurrentHashMap.
Читать полностью »
Spring Boot стартер для Apache Ignite своими руками
2016-09-23 в 13:53, admin, рубрики: Apache Ignite, big data, caching, java, spring boot, Анализ и проектирование систем, Программирование
Вот уже вышло две статьи в потенциально очень длинной серии обзоров распределённой платформы Apache Ignite (первая про настройку и запуск, вторая про построение топологии). Данная статья посвящена попытке подружить Apache Ignite и Spring Boot. Стандартным способом подключения некой библиотеки к Spring Boot является создание для этой технологии «стартера». Несмотря на то, что Spring Boot весьма популярен и на Хабре описывался не единожды, про то, как делать стартеры, вроде бы ещё не писали. Этот досадный пробел я постараюсь закрыть.
Статья посвящена преимущественно Spring Boot'у и Spring Core, так что те, кого тема Apache Ignite не интересует, всё равно могут узнать что-то новое. Код выложен на GitHub, стартера и демо-приложения.
Читать полностью »
Страничное кеширование в WordPress
2015-02-22 в 17:55, admin, рубрики: caching, php, redis, wordpress 
В последнее время на Хабре появилось довольно много постов по данной теме, но по своей сути их можно назвать: «Смотрите, я поставил Varnish / W3 Total Cache и держу миллион запросов на «Hello world» страничке». Данная же статья рассчитана больше на гиков, желающих познать, как же это все работает и написать собственный плагин для страничного кеширования.
Зачем?
Стандартный вопрос, который вознивает у каждого разработчика перед созданием велосипеда уже существующего функционала. Действительно, готовых плагинов уйма и многие из них довольно качественные, но нужно понимать что в первую очередь они рассчитаны на статические блоги. Что же делать, если у вас не стандартный WordPress сайт?
Читать полностью »
PHP + Java, или In-memory кластер теперь и для PHP разработчиков
2014-05-26 в 7:59, admin, рубрики: caching, cluster, highload, in-memory-data-grid, open source, php, высокая производительность, кеширование, кластер, кэшированиеIntro

PHP + Java. Картинка взята отсюда
В этом комментарии к статье под названием «Пишите код каждый день» я сказал, что скоро покажу свой проект, на который я выделял ежедневно 1 час (кроме выходных). Так как в последнее время моя работа связана с написанием распределенных Java приложений, которые используют in-memory data grid (IMDG) в качестве хранилища данных, то мой проект связан именно с этим.
Подробнее про IMDG можно почитать в моих предыдущих статьях (1, 2). Но если кратко, то это кластерное распределенное хранилище объектов по ключам, которое держит все данные в памяти, за счет чего достигается высокая скорость доступа к данным. Позволяет не только хранить, но и обрабатывать данные, не извлекая их из кластера.
И если интерфейс для обработки данных у каждого конкретного IMDG свой, то интерфейс доступа к данным обычно идентичен хеш-таблице.
О чем эта статья
Большинство IMDG написано на Java и поддерживают API для Java, C++, C#, при этом API для веб языков программирования (Python, Ruby, PHP) не поддерживается, а протокол для написания клиентов сильно ограничен. Именно этот факт я и считаю основным тормозом для проникновения IMDG в массы — отсутствие поддержки самых массовых языков.
Так как производители IMDG пока не предоставляют поддержку веб языков, то веб программисты не имеют возможностей по такому же легкому масштабированию приложений, какие есть у серверных Java разработчиков. Поэтому я решил сделать нечто подобное самостоятельно и выложить в open source, взяв в качестве движка open source IMDG JBoss Infinispan (компания JBoss, принадлежащая Red Hat, довольно хорошо известна в кругу java разработчиков). Мой проект называется Sproot Grid, пока доступен только для PHP, но если у сообщества будет интерес, то сделаю и интеграцию с Ruby и Python.
В этой статье я еще раз расскажу про in-memory data grid и про то, как конфигурировать, запускать и использовать Sproot Grid.
Читать полностью »
Тонкости Rails 4 — Cache Digests
2013-01-14 в 17:29, admin, рубрики: cache digests, caching, railscast, ruby, ruby on rails, ruby on rails 3, ruby on rails 4, Клиентская оптимизация, кэширование 
Гем под названием "cache_digests" (включен по умолчанию в Rails 4) автоматически добавляет цифровую подпись к каждому фрагментному кэшу, основываюсь на представлении (вьюхе). При этом, если страница изменяется, то старый кэш автоматически удаляется. Но остерегайтесь подводных камней!
Читать полностью »
Дружим System.Web.Optimization Bundle с Windows Azure Storage
2012-11-06 в 14:42, admin, рубрики: .net, azure, blob, caching, windows, windows azure, метки: .net, azure, blob, caching, windows
Я все ждал, ждал, ждал, когда же все-таки умные ребята, разрабатывающие System.Web.Optimization добавят поддержку автоматической загрузки содержимого бандла в контейнер Azure Storage. На днях вышла «1.0.0-beta2», но желаемого функционала так я и не нашел, а быстроты то хочется...Читать полностью »

