2015-09-03 4 views
0

В основном у нас есть экземпляр redis, и мы хотели бы сохранить и получить все элементы из списка Redis.Как использовать типизированный клиент servicestack?

Мы можем сохранить его, но когда мы пытались получить список

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

Я знаю, что это неправильно, но почему? И как правильно использовать типизированный клиент для Getallitems, используя ключ redis (или так называемый listid)?

Официальное использование является

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

Но если у меня уже есть fromList, почему бы я пытался получить его?

ответ

1

Вы можете получить ссылку на список типизированных (т.е. IRedisList<T>) с:

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

IRedisList<T> только адаптер, который реализует интерфейс для .NET IList<T> над удаленным REDIS LIST, т.е. он не содержит любые себя элементы, вы должны использовать его для взаимодействия с этим списком, например:

Добавить товары в нее с:

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

И получить все элементы с:

var allModels = redisModels.GetAll(); 
+0

Спасибо! Это именно то, на что я надеюсь. И кстати, если бы вы могли дать мне ссылку на сайт doc для типированного клиента redis и обычного клиента redis, я могу ссылаться на них в будущем. Прямо сейчас все, что я могу найти, это https://github.com/ServiceStack/ServiceStack.Redis/wiki/IRedisTypedClient – shawhu

+0

@shawhu docs разбросаны повсюду, они изначально были на [docs.servicestack.net] (http: /docs.servicestack.net), но многое из этого в StackOverflow. Хотя [из этой версии] (https://servicestack.net/release-notes) мы начали добавлять больше документов в репо проекта, которые мы будем продолжать добавлять. Не стесняйтесь задавать вопросы здесь, если вы нападаете на блокировщиков. – mythz

+0

Хорошо, тогда мне придется попросить о помощи больше здесь. Благодаря!! – shawhu