基本上我们有一个 Redis 实例,我们想保存和获取 Redis 列表中的所有项目。
我们可以保存它但是当我们试图获取列表时
var redis = redisclient.As<MyModel>();
string key = "myredislistkey";
List<MyModel> mylist = redis.GetAllItemsFromList(key);
我知道这是错误的,但为什么呢?以及如何使用 Redis key (或所谓的 listid)正确使用 Typed 客户端来获取所有项目?
官方用法是
List<T> GetAllItemsFromList(IRedisList<T> fromList);
但如果我已经有了 fromList,为什么还要尝试获取它呢?
最佳答案
您可以获得对类型化列表(即 IRedisList<T>
)的引用:
var redisModels = redisClient.As<MyModel>().List["myredislistkey"];
IRedisList<T>
只是一个实现 .NET IList<T>
的适配器通过远程 redis LIST 接口(interface),即它本身不包含任何元素,您可以使用它来与此列表接口(interface),例如:
向其中添加项目:
redisModels.Add(new MyModel { ... });
redisModels.AddRange(new[] { new MyModel { ... }, new MyModel { ... } });
并获取所有元素:
var allModels = redisModels.GetAll();
关于c# - 如何使用 servicestack 类型的客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366329/