¿puedo hacer que Memcached se ejecute en un entorno Windows (x64) de 64 bits?


¿Alguien sabe SI, CUANDO o CÓMO puedo obtener Memcached ejecutándose en un entorno Windows de 64 bits?

Estoy configurando una nueva solución de alojamiento y preferiría ejecutar un sistema operativo de 64 bits, y ASP.Net MVC solución con SQL Server DB, el sistema operativo va a ser Windows Server 2003 o (hopfully!) 2008.

Sé que esto podría extenderse a un debate sobre 32bit vs 64bit en servidores, pero digamos que mi preferencia es 64bit y que tengo algunos muy buenas razones.

Hasta ahora, he probado una serie de opciones y he encontrado un bit de help relacionado con obtener esto en una máquina de 32 bits (y tuve éxito, podría agregar), pero ya que el puerto original de Windows es específico de Win32, esto difícilmente va a ayudar al instalar como un servicio en x64. También tiene una dependencia del libevent para el que solo puedo obtener una versión compilada de Win32.

Sospecho que simplemente cargar todo esto en C++ y pulsar "compile" (para 64 bits) no funcionaría, sobre todo debido a las intrincadas diferencias en las arquitecturas de 32 y 64 bits, pero me pregunto si alguien está trabajando en conseguir esto desde el suelo? Desafortunadamente, mi experiencia radica en el código administrado (C#) solo, de lo contrario intentaría asumir esto yo mismo, pero no puedo creer que soy el único que está tratando de memcached que se ejecuta en un Windows de 64 bits server....am ¿Yo??

Cualquier ayuda o se agradecen las recomendaciones...


Actualizar

Sí, me temo que todavía estoy buscando una respuesta a esto - todos mis esfuerzos (con mis patéticas habilidades de C++) para hacer una compilación estable han fallado - He destrozado un servidor y 3 VM solo lo están probando, así que ahora me dirijo a los verdaderos expertos. ¿Alguien planea portar esto a 64bit? ¿O realmente estás sugiriendo que use MS Velocity en su lugar? Me estremezco al pensar...


Actualizar: @Lars-Yo uso Enyim en realidad - es muy bueno, pero a lo que te refieres es a un cliente, en lugar de la parte del servidor.

@DannySmurf - Solo he podido instalarlo como un servicio en un sistema operativo de 32 bits. el sistema operativo de 64 bits rechaza la instalación de este servicio Win32. Por supuesto, sí, mucho código Win32 funciona a la perfección en la arquitectura x64, por lo tanto, puede ejecutar aplicaciones de 32 bits (como Office, por ejemplo) o juegos en Vista/XP 64, etc., pero esto no se traduce directamente cuando se trata de servicios. No soy un experto, sospecho que tiene que ver con las sincronizaciones o eventos a los que los servicios necesitan suscribirse, y sospecho que 64 y 32 no funcionan bien. Estoy feliz de ser corregido en cualquier de esto, pero para responder a su pregunta-sí, lo he intentado.

@OJ - muchas gracias por la respuesta directa. Lo pensé mucho, pero no estaba seguro de si alguien más tenía sugerencias o ya había ido por esta ruta. Tal vez cuando StackOverflow esté EN VIVO, entonces más personas responderán y me harán saber si esto es algo que se está investigando, y aunque puedo intentar compilarlo yo mismo, simplemente no puedo " confiar "(con mi nivel de experiencia en C++) en que proporcionaría confiabilidad" a nivel empresarial " en un componente tan crucial de grandes soluciones escalables. Creo que necesitaría una intervención educada en lugar de mi enfoque experimental poco desestructurado antes de que pudiera tener confianza. Un pequeño descuido de mi parte, podría derribar el sitio. Oh, bueno... hasta la próxima...

Author: Ardalan Shahgholi, 2008-08-12

12 answers

North Scale labs ha lanzado una compilación de memcached 1.4.4 para Windows x64:

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

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

ACTUALIZACIÓN: recientemente han lanzado Memcached Server-todavía LIBRE pero mejorada distro con clustering, interfaz de usuario de administración/estadísticas basada en la web, etc. (No estoy relacionado con ellos de ninguna manera) Échale un vistazo en http://northscale.com/products/memcached.html y descargar en: http://www.northscale.com/download.php?a=d

ACTUALIZACIÓN 2: NorthScale Memcached ya no está disponible como descarga independiente. Ahora lo han hecho parte de su oferta comercial de bases de datos No SQL llamada Membase. Se puede configurar para ejecutarse en modo solo Memcached (es decir, sin persistencia) y también hay una versión 100% gratuita. Échale un vistazo aquí: http://www.membase.org/downloads

ACTUALIZACIÓN 3: MemBase se ha acostado con CouchDB y ha producido un híbrido oferta de productos, llamada CouchBase. Todavía ofrecen una versión gratuita de "Comunidad" en http://www.couchbase.com/download

 49
Author: zvolkov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-29 17:19:23

Solo para que la gente lo sepa, la versión de 32 bits y 64 bits construida por la buena gente de membase / couchbase / lo que todavía está disponible, la URL del blog ha cambiado:

Binario de 32 bits de memcached 1.4.4 como 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

Binario de 64 bits de memcached 1.4.4 como Servicio de 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

La versión de 64 bits tiene un tiempo de actividad incorrecto.

Así que tal vez quieras este binario de 1.4.2 en su lugar:

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

La versión de 32 bits incluida con MemCacheDManager también soporta se ejecuta en Windows 2000 (sin 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

Para desempaquetar el msi:

Msiexec /a Releases_MemCacheDManager_1_0_3_0.msi / qb TARGETDIR=c: \ memcached

 23
Author: Lennie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-21 15:25:25

El binario de Memcached 1.4.5 para win x64 se puede encontrar aquí: http://downloads.northscale.com/memcached-1.4.5-amd64.zip

Otra opción sería instalar Couchbase Server 1.8.0 x64 desde aquí: http://www.couchbase.com/download , el memcached incluido parece ser la versión 1.7.1.1 (suena como una versión interna, no puedo decir cuál es la verdadera)

En cuanto a ejecutar memcached como un servicio, este tutorial podría ser suficiente:

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

 6
Author: alexandrul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-05 09:36:45

Personalmente creo que tendría que recompilar la aplicación utilizando un compilador de 64 bits (obviamente en una máquina de 64 bits) para obtener el máximo de Memcached en una plataforma de 64 bits. Esto puede no ser una tarea fácil, dependiendo del código. Si fue escrito con la portabilidad de 64 bits en mente, entonces podría ser una simple recompilación. Si no lo ha hecho, entonces bien podría estar listo para un poco de parches antes de que lo construya.. ¡y luego tendrías que verificar que no has roto nada!

Yo no piensa que estás sobrestimando las diferencias entre 32 y 64 bits en absoluto. Un error común es asumir que el trabajo es una simple recompilación cuando en realidad no lo es. Hay más problemas de portabilidad de lo que la mayoría de la gente se da cuenta. Solo porque la aplicación se construye y terminas con un binario, no significa que el binario se va a comportar como debería. Especialmente cuando puede interactuar con otro código de 32 bits.

Dicho esto, ¡podría valer la pena darle una vuelta!

Buena suerte. ¡Salud!


@ Lars: Recomiendo leer la pregunta antes de intentar una respuesta.

@ John Sibly & @ DannySmurf: dada la naturaleza de Memcached y lo que pretende lograr, seguramente no querrá ejecutar una versión de 32 bits en una máquina de 64 bits? Si tuviera una máquina capaz de 64 bits, tendría sentido ejecutar una versión de 64 bits para aprovechar al máximo las características del hardware.

 3
Author: OJ.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-13 02:30:09

Tengo un memcached-1.2.1 para win32 originalmente descargado desde aquí: http://jehiah.cz/projects/memcached-win32 / (pero ahora por alguna razón es un enlace roto).

Así es como me las arreglé para ejecutar memcached para Win32 en Windows Server 2008 R2, 64 bit. memcached.exe -> propiedades -> Compatibilidad -> Ejecute este programa en modo de compatibilidad para: Windows XP (SP 3). Observe que el usuario Uriel Katz menciona en esta discusión que este método restringido a 2GB de memoria de uso.

 3
Author: jim77,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-09 16:59:55

Estaba buscando memcached en un sistema Windows de 64 bits y encontré esto. Hasta ahora no hay ninguna versión de Win64 memcached. Pero acabo de empezar el memcached.exe con los comandos apropiados a través de cmd y está funcionando bien. Estoy usando Windows Vista 64bit, no sé si hay alguna diferencia entre Vista y las versiones del servidor.

Saludos cordiales Fleshgrinder

 2
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-04 19:44:40

Amigo, Codeplex es tu amigo - > echa un vistazo a este puerto de la misma. Solía tener una versión de 64 bits, pero u puede descargar la última y compilar para 64 bits (bastante fácil) o consultar las versiones anteriores.

 1
Author: Pure.Krome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-20 04:27:27

La versión de 32 bits se ejecuta en 64 bits a través de WOW64,pero el proceso sigue limitado a 2 GB, con una versión de 64 bits puede ir más allá de eso a más de lo que una sola máquina tendrá.

 1
Author: Uriel Katz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-18 17:53:59

¿Está seguro de que la versión de 32 bits no solo se ejecuta en Windows de 64 bits, sin modificaciones? La mayoría de las cosas lo hacen.

En su defecto, ¿ha intentado simplemente compilarlo para 64 bits? Un breve análisis de algunos grupos de Google, etc, donde la gente hizo esta misma pregunta sugiere que esa puede ser exactamente la solución a esto. Creo que probablemente estás sobrestimando la diferencia entre Windows de 32 bits y 64 bits (al menos en lo que respecta a compilar una aplicación nativa).

 0
Author: TheSmurf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-12 14:48:31

Para tu información, no pude obtener la versión de 64 bits (desde aquí http://labs.northscale.com/memcached-packages / ) para instalar como un servicio hasta que ejecute memcached como administrador.

Acabo de ir a las propiedades del ejecutable, luego a la pestaña Compatibilidad, y comprobé "Ejecutar este programa como administrador" (Hay un montón de otras formas de hacer esto, pero parecía más simple)

Entonces finalmente pude ejecutar con éxito: memcached-d install

No se olvide de iniciar el servicio después de que se instala también:)

 0
Author: Jasper Rosenberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-22 17:35:33

Siempre puede ejecutar varias instancias de procesos memcached de 32 bits en una caja, lo que permite que la máquina sirva un total de > 2 GB de espacio memcache.

 0
Author: Ken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-04 17:14:51

Si esto puede ayudar, he hecho un wrapper basado en una compilación de memcached 1.4.5 64 bits encontrados a través de esta página (enlace directo a NorthScale binary ).

Es un servicio de windows y funciona perfectamente bien en un entorno de producción:
https://github.com/eric-b/MemcachedService64

 0
Author: Eric Boumendil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-05 20:49:57