могу ли я получить Memcached, работающий в 64-битной среде Windows (x64)?

кто-нибудь знает если, , когда или как Я могу сделать Memcached работает в среде Windows 64bit?

я настраиваю новое хостинг-решение и предпочел бы запустить 64-битную ОС, и поскольку это ASP.Net решение MVC с SQL Server DB, ОС будет либо Windows Server 2003, либо (надеюсь!) 2008.

Я знаю, что это может перерасти в дискуссию о 32bit против 64bit на серверах, но давайте просто сказать, что мое предпочтение 64bit и что у меня есть очень хороший причинам.

до сих пор я пробовал несколько вариантов и нашел немного of помогите связанный с получением этого на 32-битной машине (и преуспел, я мог бы добавить), но с оригинала порт Windows специфичен Win32, это вряд ли поможет при установке в качестве службы на x64. Он также имеет зависимость от libevent для которого я могу получить только скомпилированную версию Win32.

Я подозреваю, что просто загрузка всего этого на C++ и нажатие "compile" (для 64bit) не будет работать, не в последнюю очередь из-за сложных различий в 32 и 64-битных архитектурах, но мне интересно, работает ли кто-нибудь над этим с земли? К сожалению, мой опыт лежит только в управляемом коде (C#), иначе я бы попытался взять это на себя, но я не могу поверить, что я единственный парень там пытаюсь получить memcached работает на 64-разрядном сервере Windows....я??

любая помощь или рекомендации с благодарностью...


обновление

Да, я боюсь, что я все еще ищу ответ на это - все мои усилия (с моими жалкими навыками C++), чтобы сделать стабильную сборку, потерпели неудачу - я разгромил один сервер и 3 VM просто пробуют его, поэтому теперь я обращаюсь к реальным экспертам. Кто-нибудь планирует портировать это на 64bit? Или вы действительно предлагая вместо этого использовать MS Velocity? Я содрогаюсь при этой мысли...


обновление: @Lars-я использую Enyim на самом деле-это очень хорошо, но то, что вы имеете в виду, это клиент, а не серверная часть.

@DannySmurf-я смог установить его только как службу на 32-битной ОС. 64-разрядная ОС отклоняет установку этой службы Win32. Конечно, да, много кода Win32 работает без проблем на архитектуре x64, поэтому вы можете запускать 32-битные приложения (например Например, Office) или игры на Vista / XP 64 и т. д., Но это не переводится напрямую, когда дело доходит до служб. Я не эксперт, я подозреваю, что это связано с синхронизацией или eventing, на которые нужно подписаться, и я подозреваю, что 64 и 32 не играют хорошо. Я рад, что меня поправили на все это, но ответить на ваш вопрос - да, я пробовал.

@OJ-большое спасибо за прямой ответ. Я так и думал, но не был уверен, есть ли у кого-нибудь еще предложения или уже прошел по этому маршруту. Возможно, когда StackOverflow будет жить, тогда больше людей ответят и дадут мне знать, если это что - то изучается, и хотя я могу попытаться скомпилировать его Сам-я просто не могу "доверять" (с моим уровнем опыта C++), что он обеспечит надежность "корпоративного уровня" в таком важном компоненте больших масштабируемых решений. Я думаю, что для того, чтобы быть уверенным в себе, потребуется образованное вмешательство, а не мой неанитизированный экспериментальный подход. Один небольшая оплошность с моей стороны может разрушить сайт. Ну что ж... до следующего раза...

12 ответов


North Scale labs выпустили сборку memcached 1.4.4 для Windows x64:

http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

http://labs.northscale.com/memcached-packages/

UPDATE: они недавно выпустили сервер Memcached-все еще бесплатный, но улучшенный дистрибутив с кластеризацией, веб-администратором/статистикой UI и т. д. (Я не связан с ними каким-либо образом) проверьте это на http://northscale.com/products/memcached.html и скачать по адресу:http://www.northscale.com/download.php?a=d

UPDATE 2: NorthScale Memcached больше не доступен в качестве автономной загрузки. Теперь они сделали его частью своего коммерческого предложения no-SQL DB под названием Membase. Его можно настроить для работы в режиме Memcached-only (т. е. без сохранения), и есть 100% бесплатная версия. Проверьте это здесь: http://www.membase.org/downloads

UPDATE 3: MemBase переспал с CouchDB и произвел гибридное предложение продукта, называемое CouchBase. Они по-прежнему предлагают бесплатный "сообщество" версии http://www.couchbase.com/download


просто, чтобы люди знали, 32-разрядная и 64-разрядная версия как сборка хорошими людьми из membase / couchbase/все, что еще доступно URL-адрес блога изменился, хотя:

32-разрядный двоичный файл memcached 1.4.4 как Windows-service:

http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available

http://s3.amazonaws.com/downloads.northscale.com/memcached-win32-1.4.4-14.zip

64-разрядный двоичный файл из как memcached 1.4.4 как Windows-сервис:

http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip

64-разрядная версия имеет неправильное время безотказной работы.

поэтому, возможно, вы хотите этот двоичный файл 1.4.2 вместо этого:

http://www.urielkatz.com/archive/detail/memcached-64-bit-windows/

32-разрядная версия, включенная в MemCacheDManager, также поддерживает работу в Windows 2000 (без IPv6):

http://allegiance.chi-town.com/MemCacheDManager.aspx http://allegiance.chi-town.com/Download.aspx?dl=Releases/MemCacheDManager_1_0_3_0.msi&rurl=MemCacheDManager.aspx

распаковать msi:

команду msiexec /а Releases_MemCacheDManager_1_0_3_0.msi / qb TARGETDIR=c:\memcached


memcached 1.4.5 binary для win x64 можно найти здесь:http://downloads.northscale.com/memcached-1.4.5-amd64.zip

другой вариант-установить Couchbase Server 1.8.0 x64 отсюда:http://www.couchbase.com/download, в комплекте memcached, кажется, версия 1.7.1.1 (звучит как внутренняя версия, я не могу сказать, какая из них настоящая)

Что касается запуска memcached как службы, этот учебник может быть достаточно:

http://www.richardnichols.net/2010/08/install-memcached-on-windows-server/


Я лично чувствую, что вам придется перекомпилировать приложение с помощью 64-битного компилятора (очевидно, на 64-битной машине), чтобы получить максимальную отдачу от Memcached на 64-битной платформе. Это может быть непростой задачей в зависимости от кода. Если он был написан с учетом 64-битной переносимости, то это может быть простая перекомпиляция. Если это не так, то вы вполне можете быть для совсем немного исправления, прежде чем получить его построить.. и тогда вам придется убедиться, что вы ничего не сломали!

I не думайте, что вы переоцениваете различия между 32 и 64-битными вообще. Распространенной ошибкой является предположение, что задание является простой перекомпиляцией, когда на самом деле это не так. Есть больше проблем с переносимостью, чем большинство людей понимают. Только потому, что приложение строится, и вы в конечном итоге с двоичным файлом, это не означает, что двоичный файл будет вести себя так, как он должен. Особенно, когда он может взаимодействовать с другим 32-битным кодом.

сказав это, возможно, стоит дать ему спин!

удачи. Ура!


@Lars: я рекомендую прочитать вопрос, прежде чем пытаться ответить.

@John Sibly & @DannySmurf: учитывая природу Memcached и то, что он стремится достичь, конечно, вы не хотели бы запустить 32-разрядную версию на 64-разрядной машине? Если у вас есть 64-разрядная машина, имеет смысл запустить 64-разрядную версию, чтобы максимально использовать возможности оборудования.


У меня есть memcached-1.2.1 для win32, первоначально загруженный отсюда:http://jehiah.cz/projects/memcached-win32/ (но теперь по какой-то причине это сломанная ссылка).

вот как мне удалось запустить memcached для Win32 на Windows Server 2008 R2, 64 бит. как memcached.exe ->свойства ->совместимость ->запустите эту программу в режиме совместимости для: Windows XP (SP 3). Обратите внимание, что пользователь Uriel Katz упоминать в этом обсуждении, что этот метод ограничен 2 ГБ памяти использовать.


Я просто искал memcached в 64-битной системе Windows и нашел это. До сих пор нет никакой версии Win64 memcached. Но я только начал memcached.exe с соответствующими командами через cmd, и он просто работает нормально. Я использую Windows Vista 64bit, не знаю, есть ли какие-либо различия между Vista и версиями сервера.

с уважением Fleshgrinder


чувак, сайте CodePlex - ваш друг -> проверьте этот порт его. Раньше у него был 64-битный выпуск, но вы можете загрузить последнюю версию и скомпилировать для 64-битного (довольно легко) или проверить предыдущие версии.


32-разрядная версия работает на 64 бит через WOW64, но процесс по-прежнему ограничен 2 ГБ, с 64-разрядной версией вы можете выйти за рамки этого более чем на одной машине.


вы уверены, что 32-разрядная версия не просто работает на 64-разрядной Windows, без изменений? Как и большинство вещей.

в противном случае, вы действительно пытались просто скомпилировать его для 64-бит? Краткое сканирование нескольких групп Google и т. д., где люди задали этот же вопрос, предполагает, что это может быть именно решением этого. Я думаю, вы, вероятно, переоцениваете разницу между 32-разрядной и 64-разрядной Windows (по крайней мере, в том, что касается компиляции собственного приложения).


FYI, я не мог получить 64-битную версию (отсюда http://labs.northscale.com/memcached-packages/) для установки в качестве службы, пока я не запустил memcached как администратор.

Я просто зашел в свойства исполняемого файла, затем на вкладку совместимости и проверил "запустить эту программу как администратор" (там тонна других способов сделать это, но это казалось самым простым)

затем я, наконец, смог успешно запустить: memcached-d установить

Не забудьте запустить службу после его установки :)


вы всегда можете запустить несколько экземпляров 32-битных процессов memcached в одном окне, позволяя этой машине обслуживать в общей сложности > 2 ГБ memcache пространства.


Если это может помочь, я сделал обертку на основе компиляции memcached 1.4.5 64-бит, найденных через на этой странице (прямая ссылка на northscale binary).

Это служба windows, и она отлично работает в производственной среде:
https://github.com/eric-b/MemcachedService64