How do I start using Redis database with ASP.NET?
What I should install and what I should download?
I'm using Visual Studio 2008 with C#.
How do I start using Redis database with ASP.NET?
What I should install and what I should download?
I'm using Visual Studio 2008 with C#.
FYI, both the:
are open source ASP.NET web applications that only use the ServiceStack.Redis C# client.
Here is an example of how you would use an Inversion of control (IoC) container to register a Redis client connection pool and its accompanying IRepository with an IoC:
//Register any dependencies you want injected into your services
container.Register<IRedisClientsManager>(c => new PooledRedisClientManager());
container.Register<IRepository>(c => new Repository(c.Resolve<IRedisClientsManager>()));
Note: if you're just starting out with the client, I recommend you go through the C# Client Wiki, Especially the Designing a Simple Blog application with Redis tutorial*.
You can access a Redis instance from C# using the servicestack driver. You can download the code from its GitHub repository.
Recommend You StackExchage.Redis Client Library for ASP.net. Recommended By Microsoft as you see in this MSDN article. it is free and opensource. Also Look at complete List of Redis Clients available: http://redis.io/clients
And for Installing The Redis and using Client in Windows Based Platforms Download And Install Redis Service (Server and Client Tools With Documentaion) Wrote By Microsoft.
Taken from Integrating Redis in your Asp.Net MVC Project:
The first thing to do is to install Redis on your machine. It is created for Linux but has a simple installation for Windows. In fact, Microsoft has a open source implementation where you can download the installation from this GitHub page.
Install StackExchange.Redis from Nuget.
Then you can use it like this:
public class RedisCache : ICache
{
private readonly ConnectionMultiplexer redisConnections;
public RedisCache()
{
this.redisConnections = ConnectionMultiplexer.Connect("localhost");
}
public void Set<T>(string key, T objectToCache) where T : class
{
var db = this.redisConnections.GetDatabase();
db.StringSet(key, JsonConvert.SerializeObject(objectToCache
, Formatting.Indented
, new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
PreserveReferencesHandling = PreserveReferencesHandling.Objects
}));
}
public T Get<T>(string key) where T :class
{
var db = this.redisConnections.GetDatabase();
var redisObject = db.StringGet(key);
if (redisObject.HasValue)
{
return JsonConvert.DeserializeObject<T>(redisObject
, new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
PreserveReferencesHandling = PreserveReferencesHandling.Objects
});
}
else
{
return (T)null;
}
}