Могу ли я запустить Memcached в 64-битной среде Windows (x64)?


87

Кто-нибудь знает, ЕСЛИ , КОГДА или КАК я могу запустить Memcached в 64-битной среде Windows?

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

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

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

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


Обновить

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


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

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

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


Какая ошибка возникает при попытке зарегистрировать службу? Я установил несколько сервисов, разработанных в 32-битных, в 64-битных средах, и никогда не испытывал проблем. Попробуйте открыть командную строку в 32-битном режиме и зарегистрируйте службу с помощью программы sc.exe
lsalamon

Ответы:


52

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

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

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

ОБНОВЛЕНИЕ: они недавно выпустили Memcached Server - все еще БЕСПЛАТНЫЙ, но расширенный дистрибутив с кластеризацией, веб-интерфейсом администратора / статистики и т. Д. (Я не имею к ним никакого отношения) Проверьте это на http://northscale.com/ products / memcached.html и загрузите по адресу: http://www.northscale.com/download.php?a=d

ОБНОВЛЕНИЕ 2: NorthScale Memcached больше не доступен для самостоятельной загрузки. Теперь они сделали его частью своего коммерческого предложения БД без SQL под названием Membase. Его можно настроить для работы только в режиме Memcached (то есть без сохранения), а также есть 100% бесплатная версия. Посмотрите здесь: http://www.membase.org/downloads

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


3
У меня нет репутации для редактирования, но первая ссылка здесь в настоящее время неверна; между 64 и битом нужен дефис: blog.northscale.com/northscale-blog/2009/12/…
Мэгги,

22
Ссылка для скачивания все еще работает: s3.amazonaws.com/downloads.northscale.com/…
IEnumerator

Как я могу настроить сервер memcached с помощью командной строки для Windows? Я попробовал codeproject.com/Articles/96698/… ссылка. Но не могу настроить.
Naren

25

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

32-битный двоичный файл memcached 1.4.4 как Windows-сервиса:

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 / a Releases_MemCacheDManager_1_0_3_0.msi / qb TARGETDIR = c: \ memcached


Couchbase, кажется, теперь продвигает другой подход couchbase.com/memcached
Майк Гиффорд

6

Бинарный файл Memcached 1.4.5 для 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/


6

Актуальные двоичные файлы

У NorthScale действительно старые версии (последняя - 1.4.5, выпущенная в апреле 2010 года), но есть парень, который предлагает 64-битные двоичные файлы Memcached для Windows, скомпилированные с использованием Cygwin (но они не требуют его установки) в своем репозитории GitHub на github. com / nono303 / memcached .

Например, двоичные файлы последней выпущенной версии (на момент написания этого ответа) 1.5.16 находятся здесь . Есть как 32-битные, так и 64-битные версии.

Memcached как служба Windows

Если вы хотите установить его как службу Windows, вы можете использовать, например, Non-Sucking Service Manager с открытым исходным кодом :

nssm install memcached c:\path\to\memcached.exe
nssm start memcached

Подробности смотрите в документации .


3

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

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

Сказав это, возможно, стоит попробовать!

Удачи. Ура!


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

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


3

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

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


2

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

С наилучшими пожеланиями Fleshgrinder


Спасибо за это - запустить его из cmd не было проблемой - проблема была установка его как службы. С уважением, Rob G
RobertTheGrey

1

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


1
Привет Pure.Krome, спасибо за информацию, но я видел эту страницу и никогда не видел 64-битной серверной версии. И нет - согласно ответу OJ выше, вы не можете просто "легко" скомпилировать 64-битную версию, если код не был написан таким образом, а работа с памятью всегда плохое место для проверки этой теории ...
RobertTheGrey,

хм. ааа -> бит x64 был БЕТА-версией, поэтому он был заменен некоторыми более свежими обновлениями. он был найден здесь: codeplex.com/memcachedproviders/Release/…
Pure.Krome

1

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


0

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

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


0

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

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

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

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


0

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.