Кто-нибудь уже внедрил memcached для производственного использования в среде Windows? Поскольку я читал много блогов, не рекомендуется запускать memcached в Windows, особенно для производственного использования, например, для запуска memcached в Windows .
И еще одно: какой клиент memcached подходит для использования с C # и .net 3.5? Я нашел много альтернатив, таких как Memcached Providers @ Codeplex , Beitmemcached и memcached provider @ Sourceforge.
c#
.net-3.5
memcached
distributed-caching
Напуганный81
источник
источник
Ответы:
Зачем вам нужно запускать memcached в Windows? В производственной среде это дорогое удовольствие.
Если ваш код должен работать в среде Windows, получите клиент memcached для Windows и поговорите с машиной memcached на базе * nix.
В производственной среде, где запущен memcached на Server 2003 или 2008, это означает, что вы получаете лицензии на все эти устройства. Linux предложит вам все преимущества OSS. TCO будет линейно расти с использованием memcached в Windows
Редактировать:
Прошло около 1,5 лет с тех пор, как я написал этот ответ, и с тех пор многое изменилось. Вы должны обращать внимание, особенно когда кто-то вроде Дастина комментирует.
Итак, вот как вы можете запустить memcached в Windows. Загрузите memcached для Windows с сайта Couchbase (ранее Northscale) .
Обычно, если вы планируете запускать memcached на той же производственной машине, вам нужно запускать его в ограниченной памяти, то есть определить максимальную память, которую memcached может использовать.
Здесь memcached работает с максимальным использованием 128 МБ. Вы не хотите, чтобы memcached занимал всю память на вашем веб-сервере.
В тот момент, когда вы решили масштабировать memcached, вам нужно будет учесть то, что я сказал ранее. Дополнительно сжимайте свои значения в комбинациях ключевых значений. Веб-серверы обычно потребляют очень мало ЦП (2-3%), а сжатие приносит большую пользу сети по сравнению с использованием ЦП. Если вас слишком беспокоит нормальное сжатие, попробуйте LZO
источник
Я удивлен, что никто здесь еще не упомянул Redis - это одно из самых многофункциональных и быстрых (110 000 SET в секунду на 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
источник
Поскольку в то время Velocity не существовало, я использовал порт memcached для Windows для компании Skiviez, в которой я работаю. В основном он существует только для обеспечения централизованного кеша для нескольких рабочих процессов на одном компьютере. Он работает нормально около 18 месяцев на сайте электронной коммерции, который используется довольно скромно (~ 18 500 обращений в день). Клиент, который я использовал, был Enyim, интегрированным в качестве поставщика кеша для iBATIS.NET. Этот клиент, кажется, работает достаточно хорошо; Клиенты memcached тоже не очень сложные для начала.
Если бы мне пришлось сделать это снова, я бы, вероятно, посмотрел на Velocity, если бы я решил остаться в Windows для моего решения распределенного кэширования. Но сейчас работает, так что трогать не буду.
(Кроме того: с тех пор я свел на нет большую часть потребности в кэше, добавив определенные
Cache*
столбцы в ключевые таблицы в базе данных, которые обновляются с помощью запланированной задачи каждый вечер. Это привело к гораздо меньшей нагрузке на все ресурсы по сравнению с первоначальным сокращает процессорное время, запрашивая базу данных для последующей нагрузки на доступность памяти, сохраняя кешированные результаты в memcached. Это также сделало это более явным в коде, когда осуществляется доступ к кэшированной версии данных по сравнению с вычисляемой на- версия на лету. Я уверен, что у вас есть много причин использовать распределенный кеш, но всегда стоит сделать шаг назад и спросить, действительно ли он вам нужен!)источник
Я не знаю, над каким проектом вы работаете, но вы можете взглянуть на проект Microsoft Velocity со страницы:
Я видел пару демонстраций, и похоже, что у них действительно хорошая интеграция с .NET framework.
Проблема с клиентским API заключается в том, что вам все равно нужно иметь экземпляр memcached, работающий в другом ящике, где-то предпочтительно, как вы отметили, с использованием стека LAMP. Использование скорости означает, что вы по-прежнему будете работать в одном и том же стеке, и будет более тесная интеграция с платформой .net.
Сказав это, если вы хотите использовать скорость в качестве кеша для других приложений .net, вам может потребоваться написать собственный API, чтобы предоставить данные скорости для использования.
источник
Управление скоростью немного сложнее, но она намного мощнее, чем memcached. Я не против memcached, нисколько, это здорово. Но продвигаясь вперед, новые проекты, основанные на чистом .NET, безумны, если не используют Velocity, даже в его текущем невыпущенном состоянии.
источник
взгляните на SharedCache . его открытый исходный код, простой в использовании и очень надежный.
источник
Совсем не так. Стек LAMP (Linux, Apache, MySQL, PHP) не требуется для запуска Memcached. В настоящее время я предпочитаю memcached скорости, пока скорость не выйдет за пределы CTP. Я немного поигрался со скоростью, но нашел ее слишком громоздкой. Я слежу за всей этой штукой с KISS, понимаете ... будь проще. Нет ничего проще, чем кеширование ... Получить (ключ) ... Поместить (ключ, значение) ... Уничтожить (ключ).
источник
В качестве дополнения к упомянутым выше упоминаниям о скорости, он был выпущен Microsoft как часть AppFabric . Подробнее здесь.
Ознакомьтесь с различными вопросами, касающимися AppFabric и Cache, здесь, в StackOverflow.
источник
Я знаю, что немного опаздываю на вечеринку, и уже есть масса хороших ответов.
Мы очень успешно использовали Membase на Windows Server. Он на 100% совместим с Memcached и имеет удобный установщик с графическим интерфейсом и сервер веб-конфигурации. Управлять им очень легко.
Включены также другие функции 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.
источник