Моделируем 4 вида NoSQL-баз с помощью GlobalsDB
Читать полностью »
Рубрика «redis» - 13
GlobalsDB — универсальная NoSQL база данных. Часть 2
2013-07-09 в 5:54, admin, рубрики: BigTable, Casandra, couchdb, globalsdb, memcached, mongodb, Neo4, node.js, nosql, redis, Rob Tweed, SimpleDB, Блог компании InterSystems, глобалы В своей работе мне часто приходится использовать key-value хранилище для организации связи между процессами, хранения настроек системы, временных данных и т. д. Для данных целей я использую Redis. Меня он вполне устраивает, еще и hiredis всем библиотекам библиотека.
Буквально сегодня наткнулся на совсем новый проект — Gibson Cache Server. Первый коммит датирован 17 маем 2013 года. О чем и речь!
Gibson Cache Server — in-memory key-value база данных, в основе которой лежит структура данных — дерево, в то время как redis и memcached используют хеш-таблицу. Это позволяет использовать операции сразу над несколькими ключами.
Читать полностью »
Redis — главное хранилище? Что за хрень?!
2013-05-14 в 8:04, admin, рубрики: nosql, redis, softcraft, Анализ и проектирование системRedis это размещаемое в памяти хранилище ключ-значение, обычно используемое для кэшей и подобных механизмов ускорения сетевых приложений. Мы, тем не менее, храним все наши данные в Redis — в нашей главной базе данных.
Сеть полна предупреждений и предостерегающих повествований об использовании подобного подхода. Есть ужасающие истории о потере данных, исчерпании памяти или людях неспособных эффективно управлять данными в Redis, вы, возможно, интересуетесь «О чём вы вообще думаете?». Так вот, наш рассказ, почему мы всё же решили использовать Redis и как мы преодолели все эти проблемы.
Читать полностью »
Хранение сессий в Redis и их совместное использование в PHP и Tomcat
2013-02-13 в 12:09, admin, рубрики: php, redis, Песочница, сессии, метки: PHP, redis, сессии Собственно задача весьма специфичная, но может еще кому-то эта работа пригодится. Вопрос целесообразности совместного использования Apache и Tomcat предлагаю оставить за рамками обсуждения. Задача была поставлена на работе уже как данность. Требуется обеспечить хранение сессий в Redis для PHP и Tomcat причем так, чтобы эти сессии были общими между ними. Продолжительное гугление результата не дало. И для PHP и для Tomcat существуют средства хранения сессий в Redis, но формат хранения у них разный. Все 3 найденные проекта для Tomcat сериализуют сессии в Redis с использованием бинарного формата для сериализации объектов Java. Также PHP и в Tomcat разные идентификаторы для Cookie сессии (PHPSESSID и JSESSID, соответственно).
Читать полностью »
Обзор обновлений платформы Windows Azure за месяц
2013-02-04 в 8:20, admin, рубрики: media services, mobile services, redis, Service Bus, sql database, sql server, system center, vm depot, windows azure, windows azure store, windows azure summit, Блог компании Microsoft, Облачные вычисления, метки: media services, mobile services, redis, service bus, sql database, sql server, system center, vm depot, windows azure, windows azure store, windows azure summitОблачная платформа Windows Azure обновляется почти каждую неделю. Новые функции постоянно появляются в различных подсистемах платформы. В этом обзоре собрана информация о самых последних новинках Windows Azure анонсированных с января 2013 года.
Содержание обзора:
- Выпуск Windows Azure Media Services – облачной платформы для медиа-сценариев
- Обновление Windows Azure Service Bus, новый функционал Notification Hubs
- Запуск VM Depot — репозиторий образов виртуальных машин на Linux от сообщества
- Снижение цен на сервисы SQL Reporting Srevices
- Новые сервисы и расширение доступности Windows Azure Store
- Новые проекты, примеры кода для работы с Windows Azure Mobile Services
- Очередной шаг развития Redis для Windows Azure
- Расширение датацентра ценой в 1 миллиард долларов
- Выпущен System Center 2012 SP1 с функционалом интеграции с Windows Azure
- Выпущен SQL Server 2012 SP1 Cumulative Update 2 с функцией бэкапа в Windows Azure
- Windows Azure Summit: большая конференция
- Постер структуры служб Windows Azure на русском языке
- Новые материалы, руководства, проекты на базе Windows Azure
Обо всем этом вы узнаете из статьи ниже.
Читать полностью »
Как же работают транзакции в Redis
2013-01-09 в 12:29, admin, рубрики: nosql, php, redis, rediska, Веб-разработка, транзакции, метки: PHP, redis, rediska, транзакцииРаботаю с Redis относительно недавно и вот возникла необходимость изменения одного ключа несколькими потоками одновременно. Для работы с Redis в php использую клиент Rediska. Еще когда читал мануал по Rediska видел раздел про транзакции, а сегодня пришло время почитать внимательнее.
Реализация Lock’ов на сайтах Alawar
2012-11-28 в 6:00, admin, рубрики: alawar, alawar entertainment, lock, php, redis, rediska, yii, Блог компании «Alawar Entertainment», блокировка, Веб-разработка, метки: alawar, alawar entertainment, lock, PHP, redis, rediska, yii, блокировкаВведение
Сегодня мы поговорим о блокировках и покажем свою реализацию. Каждый из разработчиков не раз сталкивался с проблемой, когда необходимо обеспечить однопоточное использование какого-либо ресурса.
Часто для обеспечения такой блокировки используется схема с созданием специального файла, наличие которого определяет факт занятости того или иного ресурса.
Такой подход достаточно прост в реализации, но имеет ряд недостатков. Среди недостатков можно выделить:
- отсутствие 100% гарантии блокировки при большом количестве потоков;
- блокировка работает в рамках одного сервера;
- и самое неприятное – если процесс, который поставил блокировку почему-то её не снял, то остальные процессы так и не смогут получить доступ к этому ресурсу, пока вручную или каким-то другим способом эта блокировка не будет снята.
Когда нужны блокировки?
Каждый раз потребности разные, в основном они сводятся к исключению одновременных повторных действий, обеспечению последовательной работы с каким-то ресурсом, обеспечению равномерной нагрузки.
Читать полностью »
WebSocket-чат на Tornado для вашего Django-проекта
2012-11-26 в 10:41, admin, рубрики: Background Dating, django, python, redis, tornado, WebSocket, Веб-разработка, чат, метки: Background Dating, Django, redis, tornado, WebSocket, чат Недавно я запустил сайт backgrounddating.com и написал об этом здесь, на Хабрахабре. Разумеется, я уже тогда рассказал о некоторых технических деталях реализации этого проекта, но об одной из возможностей сайта я бы хотел написать отдельно, тем более, что документации (как на русском, так и на английском) на эту тему в Интернете пока что довольно мало. Итак, речь пойдёт о чате в реальном времени между двумя пользователями. Задача состоит в том, чтобы любой пользователь мог отправлять другим пользователям сообщения, и, если у получателя сообщения открыт чат с этим пользователям, то он сразу же видел входящие сообщения (а в ином случае он мог прочитать сообщения позже: то есть при открытии чата загружается история последних сообщений).
Если вам нужно, чтобы пользователи могли общаться не только вдвоём, а группами из любого количества человек, то сделать это можно почти что элементарно: описанная реализация, по сути, рассчитана на такое расширение функциональности.
Сразу уточню, что это не единственный способ реализовать подобное. Вы можете использовать другой асинхронный веб-сервер (например node.js), можете использовать другую очередь сообщений (или вообще её не использовать, если вам подходят особенности такого варианта: с пользователями одного канала обязательно общается один и тот же worker веб-сервера). Я даже не утверждаю, что этот вариант самый лучший (но в данном случае он подошёл лучше всех). В конце концов, мы здесь вообще не будем рассматривать костыли (long polling, Flash) для старых браузеров (а это почти все версии IE, например), не поддерживающих веб-сокеты, и даже не будем рассматривать возможность подключаться из тех браузеров, которые уже поддерживают протокол WebSocket, но не стандартизированную версию (RFC 6455), а одну из устаревших. О том, как можно включить поддержку устаревшей версии «draft 76» (она же «hixie-76»), смотрите в документации Tornado.
Читать полностью »
Background Dating — в поисках людей, с которыми интересно говорить
2012-11-21 в 16:28, admin, рубрики: Background Dating, django, redis, tornado, WebSocket, общение, я пиарюсь, метки: Background Dating, Django, redis, tornado, WebSocket, общениеИтак, я давно хотел написать сайт знакомств, но при этом совершенно не хотелось, чтобы он был таким же, как и сотни других. В итоге стало ясно, что это должен быть не совсем сайт знакомтсв, а скорее некое место, где можно находить интересных людей. С другой стороны, не хотелось ограничиваться какой-то конкретной категорией людей, поэтому вариант создания тематического сайта не рассматривался. В итоге получилось то, что вы можете видеть по ссылке. Сразу можно обратить внимание на то, что не предлагается заполнять какие-либо анкетные данные. Не потому, что их нужно заполнить после регистрации, а потому что анкет на сайте нет.
Анкет нет потому, что они имеют слишком большие ограничения. Обычно предлагается задать некий стандартизованный набор параметров, с такими же стандартизованными вариантами ответа. Но как только хочется указать что-то ещё или ответить как-то иначе, сталкиваешься с тем, что такую возможность не предусмотрели (или работает это не так, как хотелось бы).
Под хабракатом я расскажу о том, что есть на этом сайте вместо анкет, а также, конечно, напишу о некоторых технических деталях (куда же без этого).
А вот, кстати, и описание в «рекламном» стиле:
Вы давно хотели найти себе девушку, которая умеет программировать на Brainfuck? Или вам важно, чтобы она была сторонницей адаптивной и семантической вёрстки? А может, вы хотите познакомиться с той, кто может легко рассказать об отличиях микроядра от монолитного, но при этом ещё является танцовщицей?
Теперь у вас появилась такая возможность — если, конечно, она уже зарегистрировалась на Background Dating. :)
Читать полностью »
HowTo: Как подружить Django с WebSocket (socket.io)
2012-11-17 в 12:35, admin, рубрики: django, howto, python, redis, socket.io, tornado, WebSocket, метки: Django, howto, python, redis, socket.io, tornado, WebSocket Возникла у меня потребность атомарного обновления в реальном времени страницы у некоторого количества пользователей в зависимости от действий других пользователей (не гербалайф чат). Понятное дело, можно всё выкинуть в помойку и, по-молодецки, запилить с нуля на tornado/twisted.web, но явно не самый продуктивный путь (да и я не мо́лодец ни разу) когда всё что надо — уже работает на Django и нужно всего-то чуть-чуть… Естественным образом, по сути своей, сюда просится WebSocket. И всё бы ничего но Django WSGI приложение, а этот стандарт не предполагает таких выкрутасов даже близко (пока). Гугления интернетов навели, в очередной раз, на труд известного python-гуру kmike (это без сарказма, т.к. его работы выручали меня лично уже не однократно, за что нижайший ему поклон!).
Итак если вы хотите скрестить ваш Django проект с websocket посредством js библиотеки socket.io — вилькоммен!
Читать полностью »