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:
Die Antwort ließ nicht lange auf sich warten:
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:
Die Solution (bestehend aus C++ Projekten) muss gebaut werden:
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)
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.
Zur Demo mal schnell ein MVC Projekt angelegt und via NuGet nach Redis gesucht:
ServiceStack.Redis – klingt gut!
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.
In der Konsole tut sich unterdessen auch einiges:
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?