03 May 2012 NoSQL, Redis, Windows Robert Muehsig

Redis gehört zu den NoSQL Datenbanken und ist dort in der Familie der Key-Value Stores zu finden. Redis wird oft mit “Blazing Fast” betitelt und laut dem Stackoverflow Thread soll es im Vergleich zu MongoDB zweimal (beim Schreiben) und sogar dreimal (beim Lesen) so schnell sein wie MongoDB – auch wenn der Vergleich etwas “hinkt” (Dokumentendatenbank vs. Key-Value).

Redis wird auf Windows portiert (und vll. als Azure Service implementiert)

Microsofts Open Source Abteilung ist unterdessen fleissig daran Redis überhaupt auf Windows zum Laufen zu bekommen. Ein erster Wurf wurde letzte Woche erzielt. Microsoft hatte die Ergebnisse auf GitHub gestellt – auch wenn es noch ein weiter Weg bis zum Produktiveinsatz auf Windows ist.

Redis als Service für Azure?

Ein der ersten Kommentare geht direkt Richtung Azure:

image

Die Antwort ließ nicht lange auf sich warten:

image

Schauen wir mal, wann das Wirklichkeit wird. Nebenbei erwähnt: Es gibt natürlich schon einige Redis Hoster.

Redis für Windows zum Laufen bekommen.

Bevor es in der Cloud läuft, lassen wir Redis erst einmal auf unserer Windows Umgebung überhaupt zum Laufen bekommen. Aktuell (Anfang Mai 2012) muss man diesen Dev Branch runterladen und die RedisServer.sln mit Visual Studio öffnen:

image

Die Solution (bestehend aus C++ Projekten) muss gebaut werden:

image

Je nach Konfiguration hat man entweder den msvs\Debug Ordner oder den msvs\Release Ordner. Der Ordner enthält eine ganze Menge Dateien, darunter auch die redis-server.exe.

Server Starten

Nach dem Starten des Servers steht auch der Server Port da (etwas versteckt bzw. ungünstig umgebrochen, aber er ist da)

SNAGHTMLd00e987

Redis & .NET AKA Rumspielen mit der API

Kurze Warnung noch: Ich hab keine Ahnung, was genau ich mit Redis machen möchte – pures Interesse und Spieltrieb.

image

Zur Demo mal schnell ein MVC Projekt angelegt und via NuGet nach Redis gesucht:

ServiceStack.Redis – klingt gut!

SNAGHTMLd040daa

Democode:

        public ActionResult Index()
        {
            RedisClient client = RedisClientFactory.Instance.CreateRedisClient("localhost",6379);
            client.Add("Test", Guid.NewGuid());

            var result = client.Get<Guid>("Test");

            ViewBag.Message = "Welcome Redis: " + result;

            return View();
        }

Und siehe da: Es wird eine GUID angezeigt.

image

In der Konsole tut sich unterdessen auch einiges:

SNAGHTMLd074196

Wann sollte ich Redis nehmen? Was ist gut, was ist schlecht?

Da ich selber noch keine Erfahrung in Redis hab, möchte ich gerne die Meinungen auf KnowYourStack.com zu Redis sammeln: Warum nutzen? Was ist gut? Was ist schlecht?


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de