Memcached с Windows and.NET



есть ли кто-нибудь уже реализовать memcached для производственного использования в среде Windows?
Поскольку многие блоги, которые я читал, не рекомендуется запускать memcached в Windows, особенно для производственного использования, например запуск memcached на windows.



и еще одна вещь, какой memcached клиент, который хорошо использовать с c# и .net 3.5 ?
Я нашел много альтернативных, таких как Memcached Providers @ Codeplex,Beitmemcached, и memcached provider @ Sourceforge

495   11  

11 ответов:

зачем вам нужно запускать memcached на windows? Это дорогое дело в производственной среде.

Если ваш код должен работать в среде Windows, получите клиент Windows memcached и поговорите с машиной memcached на основе *nix.

в производственной среде под управлением memcached на сервере 2003 или 2008 будет означать, что вы получаете лицензии на все эти коробки. Linux предложит вам все преимущества OSS. TCO будет расти линейно с memcached на Windows

Edit:

прошло около 1,5 лет с тех пор, как я написал этот ответ, и с тех пор многое изменилось. Вы должны обратить внимание, особенно когда кто-то вроде Дастина комментирует.
Вот как вы можете сделать memcached на ОС Windows. скачать memcached для windows из Couchbase (ранее Northscale).
Обычно, если вы планируете запустить memcached на той же рабочей машине, вы хотите запустить ее в ограниченной памяти, т. е. определите максимальный объем памяти, который memcached может использовать.

c:\Program Файлы\memcached>memcached.exe-m 128.

здесь memcached работает с максимальным использованием 128 Мб. Вы не хотите, чтобы memcached занимал всю память на вашем веб-сервере.

тот момент, когда вы решили масштабирование memcached вам нужно будет рассмотреть то, что я сказал ранее. Дополнительно сжимайте значения в комбинациях ключевых значений. Веб-серверы обычно потребляют очень мало ресурсов ЦП (2-3%), а сжатие приносит большую ценность для сети по сравнению с использованием ЦП. Если вы слишком обеспокоены нормальным сжатием, попробуйте LZO

Я удивлен, что никто здесь еще не упомянуть Redis - это один из самых многофункциональных и быстрых (110 000 наборов в секунду на коробке linux начального уровня) хранилищ данных с ключом-значением с поддержкой богатой структуры данных для строк, наборов, списков, отсортированных наборов и хэшей.

хотя windows не является официально поддерживаемой платформой, она отлично работает под windows при прохождении всех тестов. У меня есть сборки windows (с помощью Cygwin) доступны здесь: https://github.com/ServiceStack/ServiceStack.Redis#redis-server-builds-for-windows

Он также имеет привязки клиента для почти каждого языка программирования в использовании сегодня. Я поддерживаю богатый клиент C# Redis с открытым исходным кодом с собственной поддержкой API для любого типа C# POCO, поддержкой транзакций и потокобезопасными менеджерами клиентов, которые готовы быть сброшены в любой IOC по адресу: https://github.com/ServiceStack/ServiceStack.Redis

поскольку скорость в то время не существовала, я использовал порт memcached для Windows для компании, в которой я работаю, Skiviez. Это в основном существует только для обеспечения централизованного кэша для нескольких рабочих процессов на одном компьютере. Он работает нормально около 18 месяцев на сайте электронной коммерции, который видит скромное использование (~18 500 просмотров/день). Клиент, который я использовал, был Enyim интегрированный как поставщик кэша для iBATIS.NET. этот клиент, кажется, работает достаточно хорошо; memcached клиенты не являются с самого начала все было очень сложно.

Если бы мне пришлось сделать это снова, я бы, вероятно, посмотрел на скорость, если бы я был привержен тому, чтобы оставаться в Windows для моего распределенного кэширования. Но сейчас он работает, так что я не собираюсь его трогать.

(в сторону: с тех пор я отменил большую часть необходимости в кэше, добавив некоторые Cache* столбцы для ключевых таблиц в базе данных, которые обновляются по расписанию каждый вечер. Это в конечном итоге ставит гораздо меньше нагрузки на ресурсы все вокруг, от первоначального обращения в процессорное время на запросы к базе данных на последующих штамм на наличие памяти, сохраняя кэшированные результаты в memcached. Это также сделало его гораздо более явным в коде, когда доступ к кэшированной версии данных осуществляется по сравнению с рассчитанной на лету версией. Я уверен, что у вас есть много причин для использования распределенного кэша, но всегда стоит сделать шаг назад и спросить, действительно ли вам это нужно!)

Я не знаю, над каким проектом вы работаете, но вы можете взглянуть на Microsoft Velocity project Со страницы:

"скорость" - это распределенная память платформа кэша приложений для разработка масштабируемых, высокопроизводительных приложения. "Скорость" можно использовать кэширование любой общеязыковой среды выполнения (CLR) объект и обеспечивает доступ через простые API. Ключевой аспект из "скорости" распределяются кэш производительность, scalabily, и доступность.

Я видел пару демо-версий, и похоже, что у него действительно хорошая интеграция с .net framework.

проблема с клиентским API заключается в том, что вам все еще нужно иметь экземпляр memcached, работающий на другом поле где-то предпочтительно, как вы заметили, используя стек LAMP. Использование скорости означает, что вы все еще будете работать в одном стеке, и есть более тесная интеграция через .net платформа.

сказав это, если вы хотите использовать скорость в качестве кэша для других приложений .net, вам может потребоваться написать свой собственный API, чтобы предоставить данные скорости для потребления.

скорость немного более вовлечена в администрирование, но она намного, намного мощнее, чем memcached. Я не анти-memcached, ни в малейшей степени, это здорово. Но продвигаясь вперед, новые проекты, которые основаны на чистой .NET, сумасшедшие, чтобы не использовать скорость, даже в ее текущем неизданном состоянии.

посмотреть SharedCache. его открытый исходный код, простой в использовании и очень надежный.

высокопроизводительная система кэширования объектов распределенной памяти, универсальная по своей природе, но предназначенная для ускорения динамических веб-приложений и / или win путем облегчения нагрузки на базу данных. Не забудьте посетить нас по адресу http://www.sharedcache.com

проблема с клиентским API заключается в том, что вам все еще нужно иметь экземпляр memcached, работающий на другом поле где-то предпочтительно, как вы заметили, используя стек LAMP.

Не совсем верно. Стек LAMP (Linux, Apache, MySQL, PHP) не требуется для запуска Memcached. В настоящее время я предпочитаю memcached над скоростью, пока скорость не выйдет из CTP. Я немного поиграл со скоростью, но нашел ее слишком громоздкой. Я следую за всем этим поцелуем, ты знать... пусть все будет просто. Нет ничего проще, чем кэширование... Получить (ключ)... Поставить(ключ, значение)... Уничтожить (Ключ).

Я знаю, что немного опоздал на вечеринку здесь, и уже есть тонны хороших ответов.

мы использовали Membase на Windows Server с большим успехом. Он на 100% совместим с Memcached, и имеет хороший установщик GUI и сервер веб-конфигурации построить его. Это очень легко управлять.

есть также другие функции NoSQL включены, которые находятся за пределами этой темы, но стоит посмотреть. У них есть бесплатная лицензия на разработку, тестирование и (ограниченные) производственные серверы.

Membase Загрузки

эта же страница имеет установку Windows только для Memcached, если вы не хотите никаких дополнительных функций в Membase.

пожалуйста, перейдите по ссылкам, указанным ниже, чтобы увидеть решение этого вопроса.

Я мог бы реализовать memcached для производственного использования в среде windows.

http://www.codeproject.com/Articles/96698/Implementing-Distributed-Caching-using-Memcached http://www.deanhume.com/Home/BlogPost/object-caching----net-4/37 http://latebound.blogspot.com/2008/10/using-memcached-from-c.html

Если вы заинтересованы в запуске клиента memcached на Windows, то есть два дополнительных сервера с открытым кодом, которые могут сделать работу. Оба реализуют стандартный протокол сервера memcached и написаны на Java, поэтому они работают в Windows.

Comments

    Ничего не найдено.