Usando listas de Redis en una aplicación .NET

En un artículo anterior, conocimos un poco acerca de qué es Redis, y cómo podemos acceder a una base de datos Redis desde una aplicación .NET usando la librería StackExchange.Redis. También vimos un sencillo ejemplo de como almacenar y consultar un valor de texto en Redis desde una aplicación. En este artículo vamos a aprender a usar listas.

Las listas en Redis son simplemente listas de strings o cadenas de texto, las cuales están ligadas y se pueden agregar elementos al inicio o al final de la lista. Recordando un poco de teoría de computación, puede decirse que las listas de Redis están basadas en el concepto de lista ligada o linked list.

408px-Singly-linked-list.svg

Representación de nodos de una lista ligada. Imagen tomada de Wikipedia. http://commons.wikimedia.org/wiki/File:Singly-linked-list.svg

La razón de estar implementadas como listas ligadas se debe a que Redis se centra en ofrecer el mayor performance posible a la hora de agregar elementos a una lista, independiente de que el tamaño de dicha lista sea de miles o  millones de objetos.

Bien, después de entender un poco el concepto, vamos a ver cómo usar las listas de Redis en una aplicación .NET. Lo primero será, al igual que lo hicimos en el anterior artículo, adicionar el paquete Nuget de la librería StackExchange.Redis al proyecto.

Redis_01

Para crear una conexión desde nuestra aplicación .NET al servidor, basta con usar la clase ConnectionMultiplexer, especificando los parámetros de conexión con el nombre del servidor (localhost en el ejemplo)

string server = "localhost";
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(server);

Luego, podemos obtener una instancia de la base de datos con la siguiente instrucción:

var db = redis.GetDatabase();

Podemos obtener los valores de una lista y usarlos de la siguiente forma:

// Obtener valores de una clave.
RedisValue[] redisList = db.ListRange(KEY);
 
// Recorrer lista de objetos.
foreach (var redisValue in redisList)
{
    // Usar valor
    // ...
}

Igualmente, podemos almacenar valores en las listas con los métodos que ofrece StackExchange.Redis para eso:

// Agregar valor al inicio de una lista.
db.ListLeftPush("Clave""Valor");
 
// Agregar valor al final de una lista.
db.ListRightPush("Clave""Valor");

En mi repositorio de GitHub podrás encontrar un ejemplo de uso de una lista de Redis en una aplicación ASP.NET MVC.

RedisList_01

Y bien, eso es todo por el momento, igualmente dejo el link a la documentación oficial de Redis que contiene todos los comandos disponibles sobre listas para que conozcas un poco más a fondo.

¿Tienes algún comentario o inquietud sobre el tema? ¡No dudes en compartirlo!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: