如何使用servicestack类型的客户端?

时间:2015-09-03 03:10:55

标签: redis servicestack typed

基本上我们有一个redis实例,我们想从Redis列表中保存并获取所有项目。

我们可以保存它,但是当我们试图获取列表时

var redis = redisclient.As<MyModel>();
string key = "myredislistkey";
List<MyModel> mylist = redis.GetAllItemsFromList(key);

我知道这是错的,但为什么呢?以及如何使用redis密钥(或称为listid)将Typed客户端正确地用于Getallitems?

官方用法是

List<T> GetAllItemsFromList(IRedisList<T> fromList);

但如果我已经有了fromList,我为什么要尝试它呢?

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容获取对类型列表(即IRedisList<T>)的引用

var redisModels = redisClient.As<MyModel>().List["myredislistkey"];

IRedisList<T>只是一个通过远程redis LIST实现.NET IList<T>接口的适配器,即它本身不包含任何元素,您可以使用它来与此列表进行交互,例如:

使用以下项目添加项目:

redisModels.Add(new MyModel { ... });
redisModels.AddRange(new[] { new MyModel { ... }, new MyModel { ... } });

获取所有元素:

var allModels = redisModels.GetAll();