Primer contacto con Redis desde C#

Tenemos muchos tipos de bases de datos en memoria, como MongoDB o RavenDB, aunque hay una de ellas que se emplea especialmente para labores de caché, y esa es Redis. En este artículo veremos algunas nociones de Redis así como su uso desde C#.

Sobre Redis

Redis no es, ni mucho menos, el último en llegar, de hecho se usa en portales como Pinterest, Twitter, Github y Stack Overflow. La base de datos se mantiene en memoria, con lo cual el acceso clave-valor para lectura y escritura son increiblemente rápidos.

Como en mi caso lo que necesitaba era una caché (de hecho no necesitaba ni siquiera que expirara) solamente necesitaba dos comandos: get y set. Las claves a usar son cadenas de texto (string), y los valores puede ser de tipo texto (string), listas o conjuntos de manera nativa.

La manera más sencilla de empezar a trabajar con Redis en Windows es a través de Chocolatey, una vez instalado solamente necesitamos.

cinst redis

Redis desde C#

Existe multitud de librerías que podemos usar para ello, siendo la más distribuida la de ServiceStack, que nos permite procesar un número máximo de 4000 peticiones por hora, ya que tiene soporte comercial.

Para agregar Redis a nuestra solución, lo más sencillo es a través de NuGet (disponemos además de una versión firmada por si nuestro proyecto lo requiere):

Install-Package ServiceStack.Redis

También podemos descargar la solución desde el repositorio de Github y construirla por nosotros mismos. Una vez instalada, si estamos trabajando desde el mismo ordenador donde hemos instalado redis, se conectará por defecto a localhost:6379, y podremos acceder mediante el siguiente código:

using ServiceStack.Redis;
public class MyRedisHelper
{
  private RedisClient redisClient;
  public MyRedisHelper()
  {
    //Por defecto, a localhost:6379
    this.redisClient = new RedisClient();
  }

  public void Set(string key, string value)
  {
    //Tanto el metodo get como set son genericos
    this.redisClient.Set<string>(key, value);
  }

  public string Get(string key)
  {
    this.redisClient.Get<string>(key);
  }
}

Solamente con estas líneas de código, ya tenemos acceso a nuestra instalación de redis y podemos hacer uso de nuestra caché. En el caso de Set, podemos, como parámetro adicional, especificar una fecha de expiración o un tiempo máximo, por si necesitamos que los datos de nuestra caché sean volátiles.

Más información:

Del escritorio a la web: Mi charla en Madrid JS

El pasado 10 de abril tuve mi primera experiencia como ponente en el grupo de MadridJS en la sala CAMON de Moncloa, Madrid, donde estuvimos hablando de nuestra evolución desde el escritorio a la web desarrollando el Web Workspace. Este artículo contiene un comentario de los ejemplos usados y las slides empleadas.

Bk4F638IMAEWxPq

Sigue leyendo

Charla desarrollo Windows 8 en Valencia: Slides y código de ejemplo

El pasado 4 de abril tuve la oportunidad de volver a Valencia por tercera vez consecutiva para charlar con los alumnos de la’Escola Tècnica Superior d’Enginyeria (ETSE) sobre desarrollo de aplicaciones móviles en general, y en aplicaciones para Windows 8 y Windows 8 en particular.

Durante algo más de una hora estuvimos intentando dar respuesta a las siguientes preguntas:

  • ¿Merece la pena meterse en el mundo de desarrollo para aplicaciones móviles?
  • ¿Cuanto cuesta comenzar?
  • ¿Qué son los live tiles?
  • ¿Cómo integrarnos con el sistema operativo?
  • ¿Qué opciones de publicación tenemos?
  • Y muchas más.

Para ello, estuvimos desarrollando una pequeña aplicación con las siguientes características:

  • Cliente REST para consumir la API de datos de youtube.
  • Múltiples pantallas para poder ver detalles sobre un vídeo concreto
  • Posibilidad de cargar datos desde disco, usando el File Picker
  • Preferencias integradas en el cuadro de diálogo “Settings”.
  • Posibilidad de compartir con otras aplicaciones a través del Share contract

El código fuente de ejemplo está disponible aquí: https://app.box.com/s/d5d6iot8y6v5ankz5kfy

Finalmente, la presentación se encuentra disponible en slideshare

Happy hacking!

Consumiendo APIs REST con Windows 8 [I/II] (Evento 21/03)

El pasado 21 de marzo en la Universidad de Salamanca, estuvimos hablando de diferentes APIs REST.

Durante algo más de una hora vimos cómo a través de APIs Rest podemos consumir y crear contenidos desde nuestras aplicaciones. En este primer artículo de la serie, veremos cómo consumir servicios existentes, primero por consola, y luego a través de un cliente Windows 8.

Sigue leyendo

El próximo viernes 21 estaré en Salamanca hablando de APIs

Lo iba a publicar hoy mismo, pero se me han adelantado:

Así que, vuelvo a la ciudad universitaria por excelencia para hablar de… APIs!

Durante una hora estaré con lo chicos de DotnetUSAL hablando de APIs, de maneras de aprovechar puntos de entrada que nos ofrecen empresas y servicios para mejorar las capacidades de nuestras apps, cómo consumir las mismas, así como algunos conceptos básicos de HTTP que nos puedan resultar útiles cuando trabajamos con ellas. Finalmente, si el tiempo lo permite, veremos cómo hacer nuestra propia API REST usando WebAPI y consumirla desde un cliente Windows 8.1.

Las demos las haremos con Visual Studio 2013, así que si no lo tienes instalado, tienes dos opciones:

  • Corre a instalarlo desde tu cuenta de Academic Alliance
  • Corre a instalarlo (la versión express) desde msdn.com

Como siempre, después de la charla, tanto las (pocas, va a haber mucho código!!!) slides como los ejemplos estarán colgados aquí en el blog.

Hangout: Experiencias con Signalr y Web API

Actualización: Estamos a punto de comenzar: https://plus.google.com/events/c7kl48sk2bu7cho58d5r3f76ugo y http://www.youtube.com/watch?v=fZSFpry_X2g

Este viernes, 14 de marzo a las 19:00 (GMT + 1), Juan Quijano (colaborador habitual de blogs como GenbetaDev y de comunidades de usuarios como MadNug) y un servidor estaremos, vía hangout, comentando nuestras experiencias con SignalR y Web API.
Sigue leyendo