Як ми Redis Cluster готували



У світі опен сорс є величезна кількість технологій, підходів, патернів, тулзов і аппов, які юзає дуже багато компаній. Як перетворити використовується або технологію в конкурентну перевагу? Пропоную розглянути на прикладі Redis Cluster — як ми прокладали нашу путь.

Читати далі →

Продуктивність Bitrix Старт на Proxmox і Virtuozzo 7 & Virtuozzo Storage


Тестування продуктивності Bitrix Старт на двох принципово різних платформах. Заміряти будемо за допомогою вбудованої панелі продуктивності Bitrix.

C однієї сторони, безкоштовна версія Proxmox 4.4, LXC контейнери з використанням файлової системи ZFS на SSD-дисках.

З іншого боку, ліцензійна Virtuozzo 7 CT + Virtuozzo Storage. У цьому варіанті ми використовуємо звичайні SATA диски + SSD для кеша запису і читання.

Ми враховуємо, що Virtuozzo 7 є комерційною системою, що вимагає обов'язкового ліцензування, а Proxmox 4 можна використовувати безкоштовно, але без технічної підтримки.

З цієї причини, повноцінно порівнювати дві платформи звичайно не коректно, але якщо
цікаво дізнатися як можна збільшити продуктивність сайту використовуючи одне і теж залізо, однакову конфігурацію віртуальних машин і її сервісів, то дана стаття може бути вам корисна.

Читати далі →

Зберігання php-сесій в Redis з блокуваннями

Стандартний механізм зберігання даних користувача сесій в php — зберігання в файлах. Однак при роботі програми на декількох серверах для балансування навантаження, виникає необхідність зберігати дані сесій в сховище, доступному кожному серверу програми. В цьому випадку для зберігання сесій добре підходить Redis.

Найбільш популярне рішення — розширення phpredis. Досить встановити розширення і налаштувати php.ini й сесії будуть автоматично зберігатися в Redis без зміни коду додатків.

Проте таке рішення має недолік — відсутність блокування сесії.

Читати далі →

Yii2-advanced: Робимо інтернаціоналізацію з джерелом в Redis

Yii2 є можливість реалізувати три варіанти інтернаціоналізації:

1. Файл з масивом, виду: ключ=>переклад (гнучко);
2. Файл з розширенням .po,.mo бінарний (потрібен компілятор, швидко);
3. База даних mysql, дві таблиці для ключів і перекладом (найкраща реалізація при іменуванні унікальних категорій або прив'язаних до сторінки так як yii витягує по категорії всі ключі );

Або свій варіант взявши за основу зберігання переказів в базі але зі своїм управлінням (формування ключів, перекладів та їх зберігання).

Основне
Виклик перекладу залишається стандартним Yii::t(). Зберігати переклади з ключами будемо в MySQL. Тимчасове сховище за поточним мови буде в Redis. Збір ключів (категорій) залишається незмінним.

У чому плюси:

  • швидше;
  • гнучкіше;

Читати далі →

Використання memcached і Redis в високонавантажених проектах



В'ячеслав Москаленко (Ленвендо)
Я буду розповідати вам про інструменти високонавантажених проектів, кешуванні, зокрема, про memcached, Redis-е і про сервіс черг RabbitMQ або в простолюдді «кролика».

У першій частині доповіді я розповім про те, що таке memcached — базові поняття, що таке Redis, про його особливості, і чим ці два сервісу відрізняються. Розповім про практичне застосування в наших проектах обох сервісів.

А в другій частині я буду розповідати про брокера повідомлень RabbitMQ, про основних поняттях, які є в «кролика», про те, як працює маршрутизація повідомлень між продюсерами і консьюмерами. Також розповім про практичне застосування в наших проектах даного брокера повідомлень.

Про кешуванні. Думаю, багато хто з вас хоч щось кэшировали в своїх веб-проектах, тому все буде дуже просто і доступно.

Читати далі →

Зустрічайте Dictator! Маленький і добрий

Пролог
У своїй роботі у мене час від часу виникає бажання змінити поведінку того чи іншого інструменту: зробити роботу з ним звичніше, API прозорішим і т. п. Так сталося і коли мені в спадок дістався проект, де в якості сховища використовувався Redis. Безсумнівно, Python має досить бібліотек для зручної роботи з Redis, однак згадуючи, що це саме key-value сховище, мені не могла не прийти в голову думка про те, як було б чудово працювати з ним як зі звичайним Python-словником (dict).

Читати далі →

Security Week 36: уразливість в Nexus 5X, криптолокер постить картинки, атака на Linux-сервери через Redis

Комбінація стандартних інструментів розробника і пари недокументованих можливостей дозволяє зламати телефони Nexus 5X — працюють на «чистому» Android смартфони, що випускаються компанією LG. Про це повідомляє лабораторія X-Force компанії IBM (новина, исследование)природно вже після того, як Google закрила вразливість патчем на цьому тижні.

Судячи з усього вразливість можливо було експлуатувати з унікальною комбінацією прошивки і завантажувача. Для експлуатації потрібно фізичний доступ до смартфону, або досить хитра і непрактична маніпуляція комп'ютером, до якого підключається Nexus. Якщо заволодіти телефоном, все просто і надійно. Заходьте в меню завантажувача в режимі fastboot, підключення по USB. Далі через інтерфейс adb віддаєте команду fastboot oem panic — а це призводить до збереження повного дампа пам'яті. Цей дамп також можна витягнути з пристрою, а в ньому, в свою чергу, відкритим текстом зберігається пароль доступу до телефону.

Все, можна перезавантажуватися, вводити вкрадений пароль і далі робити все, що душі завгодно. Цікавий ще один потенційний вектор атаки: через «шкідливий» USB-зарядник, щоправда на практиці це можливо не у всіх випадках. В IBM не спостерігають прикладів експлуатації атаки, так що дірку закрили раніше, ніж їй могли б скористатися. Але сценарій використання тут добре вкладається в канони якого-небудь шпигунського серіалу: під покровом темряви міняємо штатну зарядку на підготовлену і отримуємо повний доступ до пристрою. Питання в тому, скільки ще відкриттів дивних готують нам сучасні пристрої. Це вам не роз'єм для навушників, тут все серйозно.

Всі випуски серіалу доступні по тегу.

Читати далі →

Зроби сам веб-сервіс з асинхронними чергами і паралельним виконанням

rqКожен повинен робити свою роботу якісно і в строк. Припустимо, вам потрібно зробити веб-сервіс класифікації зображень на базі навченої нейронної мережі за допомогою бібліотеки caffe. В наші дні якість — це асинхронні неблокирующие виклики, можливість паралельного виконання декількох завдань при наявності вільних процесорних ядер, моніторинг черг завдань… Бібліотека RQ дозволяє реалізувати все це в стислі терміни без вивчення тонни документації.
Зробимо веб-сервіс на одному сервері, орієнтований на несильно навантажені проекти і порівняно тривалі завдання. Природно, його застосування не обмежується цими вашими нейронними мережами.
Читати далі →

Як знайти найближче кафе, пам'ятка, вільне таксі очима програміста

Сервіси, вирішальні завдання у контексті нашого місця розташування досить міцно увійшли в наше життя. Більшість смартфонів може при наявності доступу в інтернет викликати нам таксі, розрахувати, через скільки приїде автобус, прокласти маршрут з урахуванням пробок і різних уподобань користувача або показати друзів поблизу. Задачки зразок пошуку найближчих кафе або пам'яток стали для них тривіальні і зазвичай можуть бути вирішені взагалі без доступу до всесвітньої павутини. У даній статті я хочу розглянути деякі інструменти для вирішення подібних завдань і порівняти їх продуктивність між собою.

Читати далі →

Створення in-memory кешу першого рівня .NET-клієнтів StackExchange.Redis

Джонатан Карді написав .NET бібліотеку StackRedis.L1 з відкритим вихідним кодом, яка дозволяє створювати кеш першого рівня для Redis. Іншими словами, використовуючи бібліотеку StackExchange.Redis в .NET-додатку, ви можете підключити до неї StackRedis.L1 для прискорення роботи за рахунок локального кешування даних в оперативній пам'яті. Це дозволяє уникнути зайвих звернень до Redis в тих випадках, коли дані не піддавалися змінам. Бібліотека доступна на GitHub і NuGet.
У цій статті розповідається про те, як і чому вона була створена.



Читати далі →