2012-04-13 27 views
35

He visto varias referencias a personas que ejecutan Redis en Azure, pero no hay implementación ni ningún tipo de "cómo" en él. ¿Alguien ha visto tal ejemplo?¿Cómo obtener Redis funcionando en Azure?

+0

Enlaces a estas referencias, por favor? – kristianp

+0

Ver los comentarios a esta pregunta: ¿http://stackoverflow.com/questions/5766815/does-azure-support-things-like-mongodb-and-redis – noocyte

+1

Y ahora, por supuesto, Microsoft se está ejecutando Redis como un servicio en Azure: http://azure.microsoft.com/en-us/documentation/services/cache/#redis – noocyte

Respuesta

47
  1. Descargue Redis para Windows - consulte la sección 'Redis Service compilaciones para Windows' en https://github.com/ServiceStack/ServiceStack.Redis. Terminé usando la versión Win64 de dmajkic https://github.com/dmajkic/redis/downloads
  2. Crear un papel trabajador Azure, eliminar la clase por defecto (que no es necesario el código C# en absoluto). Agregue el archivo redis-server.exe de la fuente redis descargada (el exe se puede encontrar en redis/src).
  3. En el archivo de definición de servicio, agregue el siguiente config

    <WorkerRole name="my.Worker" vmsize="Small"> 
        <Runtime executionContext="limited"> 
        <EntryPoint> 
         <ProgramEntryPoint commandLine="redis-server.exe" setReadyOnProcessStart="true" /> 
        </EntryPoint> 
        </Runtime> 
        <Imports> 
        <Import moduleName="Diagnostics" /> 
        <Import moduleName="RemoteAccess" /> 
        <Import moduleName="RemoteForwarder" /> 
        </Imports> 
        <Endpoints> 
        <InternalEndpoint name="Redis" protocol="tcp" port="6379" /> 
        </Endpoints> 
    </WorkerRole> 
    
  4. se puede hacer referencia al servidor Redis de su papel web utilizando el siguiente

    var ipEndpoint = RoleEnvironment.Roles["my.Worker"].Instances[0].InstanceEndpoints["Redis"].IPEndpoint; 
    host = string.Format("{0}:{1}", ipEndpoint.Address, ipEndpoint.Port); 
    

Espero que ayude.

+0

¡Impresionante! ¡Muchas muchas gracias! – noocyte

14

FYI, la mencionada Redis el proyecto de Windows desde MS Abierta Tech tiene ahora un instalador Azure disponible, lo que hace que sea fácil de conseguir Redis hasta y ejecutándose en un rol de trabajador de PaaS. Aquí hay un tutorial detallado: http://ossonazure.interoperabilitybridges.com/articles/how-to-deploy-redis-to-windows-azure-using-the-command-line-tool (La revelación completa: Estoy en el equipo MS Abierta Tech.)

+0

Sería bueno tener una pequeña GUI (aplicación WPF) para 'RedisInstWA.exe' para que sea más accesible para las personas que ejecuten Redis en Azure. He usado el método de máquina virtual de Linux debido a mi conocimiento limitado sobre los archivos de configuración de azure. Pero sigue siendo curioso lo que funciona mejor, el rol de trabajador de PaaS o la máquina virtual de centOs. –

+0

Hola JP, acabo de ver tu comentario. Gran idea sobre una interfaz gráfica de usuario: ¿estaría dispuesto a registrarla como una solicitud en el repositorio de Guthub? (https://github.com/MSOpenTech/redis/issues) Haré un seguimiento para intentar que esto suceda. En cuanto a las comparaciones de rendimiento entre PaaS y IaaS, analizaremos eso pero todavía no tenemos resultados. –

+0

¡Claro, lo haré! https://github.com/MSOpenTech/redis/issues/50 p.s. No lo hice funcionar con el tutorial, así que terminé usando una máquina virtual de Linux con este tutorial: http://blogs.msdn.com/b/tconte/archive/2012/06/08/running-redis- on-a-centos-linux-vm-en-windows-azure.aspx –