API имеют описательный смысл для улучшения читабельности в обычных базах кода для разработчиков, которые не знакомы с командами redis keycode .
Но если вы хотите знать, что каждая операция API просто ищет в исходном коде github.com / ServiceStack / ServiceStack.Redis , чтобы узнать, какую команду Redis они вызывают. Или, если вы просто заинтересованы в API списков, многие из них определены в RedisClient_List.cs .
Вы очень редко захотите использовать API Blocking*
, которые вызывают redis блокирует команды , если это не то поведение, за которым вы хотите заблокировать поток, пока элемент не будет добавлен в список.
Другие API являются обычными операциями, в зависимости от как вы хотите относиться к структуре данных списка. ИМО, имена API очень описательны с их поведением, например, если вы хотите рассматривать его как список, есть:
Добавление элементов в список
PrependItemToList
- добавьте к начало списка (LPU SH) AddItemToList
- добавить элемент в конец списка (RPU SH)
Добавить диапазон элементов
PrependRangeToList
- добавить диапазон элементов к началу списка (LPUSH []) AddRangeToList
- добавить диапазон элементов в конец списка (RPUSH [ ])
Удаление элементов из списка
RemoveStartFromList
- удалить элемент из начала списка (LPOP) RemoveEndFromList
- удалить элемент из конца списка (RPOP)
Также есть псевдонимы для вышеуказанных команд, если вы предпочитаете использовать другую номенклатуру в своей кодовой базе, например, если вы хотите обработать перечислите в качестве другой структуры данных, такой как Очередь или Стек, вместо которой вы будете использовать парные API для работы с ними, например:
EnqueueItemOnList
- поставьте в очередь элемент t o очередь (LPU SH) DequeueItemFromList
- удалить элемент из очереди (RPOP)
или, если вы хотите обработать свой список как стек:
PushItemToList
- Pu sh a Item (RPU SH) PopItemFromList
- Pop Item (RPOP)
If вместо этого вы хотите использовать свою собственную номенклатуру, вы можете просто добавить свои собственные методы расширения в интерфейсы Redis Client, например:
public static class MyRedisApis
{
public static string PopLeft(this IRedisClient client, string listId) =>
client.RemoveStartFromList(listId);
public static string PopRight(this IRedisClient client, string listId) =>
client.RemoveEndFromList(listId);
}
, где вы теперь можете использовать вместо этого свои собственные именованные API в своей кодовой базе:
var item = redis.PopLeft(myList);
При необходимости вы можете привести свой Redis Client к IRedisNativeClient и получить доступ к тем же именам команд, что и на redis-сервере, но потребуется преобразовать необработанный тип byte[]
в UTF-8 string
, где это необходимо.