Comments 23
UFO just landed and posted this here
Интересно написано. Буду ждать продолжение…
За проделанную работу — спасибо.
За проделанную работу — спасибо.
+1
Цвет комментариев в коде… брр.
+1
Привет Хабру ;) По поводу форматирования текста здесь — отдельная песня. Это vim -> html. Вот здесь: www.smira.ru/2009/01/21/data-structures-in-memcached-memcachedb/ цвета более зачетные.
0
спасибо за такую статью… только вот не ясно, а разве в питоне нет какой то стандратной библиотеки которая реализует методы memcached такие как add increment del и тп?
0
А то что memcached может в любой момент времени затереть ваши данные (ведь это не БД и он не обязан хранить данные) это не мешает реализации данных подходом? Или я что-то путаю?
0
ИМХО, стоит все эти рецепты где-то в одном месте сложить. Не только реализации на конкретных языках, но и общие алгоритмы.
+1
Хорошая статья, спасибо :) С удовольствием прочту продолжение.
+1
А корректное ли это использование кэш-сервера?
Насколько я его понимаю, он создается для простых операций типа get/set, а когда начинается изобретение колеса, то не проще ли глянуть в обычные СУБД, но например с pconnect`ом и in memory tables?
Насколько я его понимаю, он создается для простых операций типа get/set, а когда начинается изобретение колеса, то не проще ли глянуть в обычные СУБД, но например с pconnect`ом и in memory tables?
0
Нет, совсем нет. Современная реляционная СУБД не умеет масштабироваться нормально (с точки зрения нагруженного web-приложения и т.п. задач). Она обладает огромным количеством накладных расходов (от парсинга SQL до ACID-совместимости).
Вариант с memcached будет на порядки быстрее, если он применим. Да и используется он очень-очень часто.
Вариант с memcached будет на порядки быстрее, если он применим. Да и используется он очень-очень часто.
0
memcachedb — это БД Berkeley DB (http://ru.wikipedia.org/wiki/BDB) + интерфейс работы аналогичный memcache. Так что это совсем не кеш-сервер.
Кстати BDB сейчас компания Оракл поддерживает.
Сама база умеет хранить ключ и его значение (аналогично тому что мы обычно временно сохраняем в memcache).
На прошлой неделе тестировали для своего проекта, запись и извлечение миллионов записей в BDB (используя memcachedb) — работает очень быстро ) у нас он записывал со скоростью 9-17 тыс. записей в секунду.
Кстати BDB сейчас компания Оракл поддерживает.
Сама база умеет хранить ключ и его значение (аналогично тому что мы обычно временно сохраняем в memcache).
На прошлой неделе тестировали для своего проекта, запись и извлечение миллионов записей в BDB (используя memcachedb) — работает очень быстро ) у нас он записывал со скоростью 9-17 тыс. записей в секунду.
+1
memcached — это не кэш-сервер. Вместе с MemcacheDB (в начале статьи причины почему они рассматриваются вместе) они являются частью поколения БД с интерфейсом ключ-значение. Семантика, масштабируемость, скорость работы и т.п. могут быть различными, но они хранят всегда огромный «хэш».
Отличие memcached от MemcacheDB — только в способе хранения значений, не более. А на практике у меня экземпляры memcached живут по полгода и больше — это превышает на порядок срок хранения структур данных в нем. А для всего остального есть MemcacheDB.
Отличие memcached от MemcacheDB — только в способе хранения значений, не более. А на практике у меня экземпляры memcached живут по полгода и больше — это превышает на порядок срок хранения структур данных в нем. А для всего остального есть MemcacheDB.
0
> В первом случае надо лишь правильно обслуживать memcached — памяти должно хватать для счетчиков, иначе мы начинаем терять значения
$ memcached -h | grep memory
-m max memory to use for items in megabytes, default is 64 MB
-M return error on memory exhausted (rather than removing items)
$ memcached -h | grep memory
-m max memory to use for items in megabytes, default is 64 MB
-M return error on memory exhausted (rather than removing items)
+1
Даешь примеры на самом распространенном языке веба =)
0
Sign up to leave a comment.
Структуры данных в memcached/MemcacheDB. Часть 1