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
            Console.WriteLine("Removed DE");

            // Close connection

            Console.WriteLine("Press any key to Exit");