【发布时间】:2015-01-29 10:40:29
【问题描述】:
我是服务堆栈 redis api 的新手。所以我在使用服务堆栈redis api时有点困惑。我想知道 IRedisTypedClient""?
1) "" 代表什么?
2) 我们可以在“”中传递哪些参数?
【问题讨论】:
标签: c# api redis servicestack servicestack.redis
我是服务堆栈 redis api 的新手。所以我在使用服务堆栈redis api时有点困惑。我想知道 IRedisTypedClient""?
1) "" 代表什么?
2) 我们可以在“”中传递哪些参数?
【问题讨论】:
标签: c# api redis servicestack servicestack.redis
IRedisTypeClient 接口提供了 Redis 客户端 API 的类型化版本,其中所有 API 都接受类型化的 POCOs(即普通旧 CSharp 对象)作为其值主体,而 IRedisClient 仅接受原始的字符串。在幕后,Typed API 只是将 POCO 序列化为 JSON 字符串,但它的 typed API 在处理丰富的复杂类型时提供了更好的 API。
创建IRedisTypeClient<T>的API是使用IRedisClient.As<T> API,例如:
public class Todo
{
public long Id { get; set; }
public string Content { get; set; }
public int Order { get; set; }
public bool Done { get; set; }
}
IRedisClient redis = redisManager.GetClient();
var redisTodos = redis.As<Todo>();
如上所示,您可以从任何用户定义的 POCO 创建类型化 API,它现在提供 API,让您可以直接使用原生 Todo 类型,例如:
var todo = new Todo
{
Id = redisTodos.GetNextSequence(),
Content = "Learn Redis",
Order = 1,
};
redisTodos.Store(todo);
Todo savedTodo = redisTodos.GetById(todo.Id);
savedTodo.Done = true;
redisTodos.Store(savedTodo);
"Updated Todo:".Print();
redisTodos.GetAll().ToList().PrintDump();
有一个 stand-alone version of this example 以及一个使用 RedisClient 类型 API 的 Backbones TODO app with a Redis backend 的现场演示。
【讨论】: