I’ve recently spent a little time working with Redis, which is a key-value store NoSQL database. Redis (REmote DIctionary Server) is an in-memory database, but the data can also be persisted to disk.
With a key-value store, you submit a record with a unique string key, and store a value for that key. In Redis the value can be Strings, Lists, Sets, Hashes or Ordered Sets. A record is retrieved by the key, there aren’t joins like there would be in a relational database.
There isn’t an official Redis download for Windows, but I was able to download it using Chocolatey, which installed it as a Windows service.
Next I downloaded a C# client, I opted for Sider. The Sider page also includes some sample code, with more sample code available as part of the repository code.
Below is some sample code where I instantiate the Client, save some values, update a value and delete a value before exiting.
using System;
using Sider;
namespace RedisDemo
{
class Program
{
static void Main(string[] args)
{
// Create client
RedisClient client = new RedisClient("localhost", 6379);
// Set values
client.Set("QB", "Matt Ryan");
client.Set("HeadCoach", "Mike Smith");
client.Set("Owner", "Arthur Blank");
client.Set("RB", "Michael Turner");
client.Set("DE", "John Abraham");
// Display Values
Console.WriteLine("QB = " + client.Get("QB"));
Console.WriteLine("Head Coach = " + client.Get("HeadCoach"));
Console.WriteLine("Owner = " + client.Get("Owner"));
Console.WriteLine("RB = " + client.Get("RB"));
Console.WriteLine("DE = " + client.Get("DE"));
// Set a new Running Back
client.Set("RB", "Steven Jackson");
Console.WriteLine("New RB = " + client.Get("RB"));
// Remove player record
client.Del("DE");
Console.WriteLine("Removed DE");
// Close connection
client.Dispose();
Console.WriteLine("Press any key to Exit");
Console.ReadLine();
}
}
}