【发布时间】:2011-06-27 17:44:30
【问题描述】:
【问题讨论】:
【问题讨论】:
仅供参考,两个:
是仅使用 ServiceStack.Redis C# 客户端的开源 ASP.NET Web 应用程序。
Here is an example 您将如何使用 Inversion of control (IoC) 容器来注册 Redis 客户端连接池及其随附的 IRepository 与 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>()));
注意:如果您刚开始接触客户,我建议您通过C# Client Wiki,尤其是Designing a Simple Blog application with Redis tutorial*。
【讨论】:
您可以使用 servicestack 驱动程序从 C# 访问 Redis 实例。您可以从its GitHub repository下载代码。
【讨论】:
推荐您StackExchage.Redis ASP.net 客户端库。正如您在这篇 MSDN 文章中看到的,由 Microsoft 推荐。它是免费和开源的。 另请查看可用 Redis 客户端的完整列表:http://redis.io/clients
对于在基于 Windows 的平台上安装 Redis 和使用客户端,请下载并安装 Redis Service (Server and Client Tools With Documentaion) Microsoft 编写。
【讨论】:
取自Integrating Redis in your Asp.Net MVC Project:
首先要做的是在你的机器上安装 Redis。它是为 Linux 创建的,但对于 Windows 有一个简单的安装。事实上,微软有一个开源实现,你可以从这个GitHub页面下载安装。
从 Nuget 安装 StackExchange.Redis。
然后你可以这样使用它:
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;
}
}
【讨论】: