Redis — хранилище данных типа «ключ» — «значение» («key» — «value»). Благодаря тому, что как и Memcashed, Redis хранит данные в оперативной памяти, работа с ними осуществляется предельно быстро, что в сочетании с поддержкой различных типов данных, возможностью сохранения данных на диск и рядом других особенностей, сделало Redis если не самым популярным решением для реализации кеша в сложных высоко нагруженных приложениях, то во всяком случае одним из таковых.
В этой статье мы рассмотрим основы работы с Redis в C# на примере добавления и получения строковых данных.
Для начала подключаем к проекту через NuGet клиент для Redis (на скриншоте ниже он уже подключен).
Подключаем пространство необходимое имён:
1 2 3 4 5 6 7 |
using StackExchange.Redis; Подключаемся к Redis. private ConnectionMultiplexer redis; Database db; . . . redis = ConnectionMultiplexer.Connect("localhost"); db = redis.GetDatabase(); |
Для добавления данных служит семейство методов с суффиксом Set. Эти методы принимают два обязательных параметра. Имя ключа (строка) и передаваемое значение в одном из поддерживаемых форматов.
Например, для строки:
1 |
db.StringSet("testKey", "Test string"); |
Для добавления данных служит семейство методов с суффиксом Get. Эти методы принимают в обязательном порядке только имя ключа.
В качестве примера получим из Redis ранее добавленную строку.
1 |
string str = db.StringGet("testKey"); |
К сожалению возврат значения по умолчанию не предусмотрен. Поэтому разработчику придётся самостоятельно позаботиться о том, чтобы попытки получить данные по несуществующим ключам обрабатывались корректно.
Ситуация осложняется тем, что результат возвращается в формате RedisResult.
В случае присвоения результата переменной соответствующего типа требуемое приведение выполняется автоматически. Но, получение данных из базы происходит до присвоения.
Как вариант, можно привести типы вручную, как это показано ниже для строки с использованием оператора объединения со значением null.
1 |
string str = db.StringGet("testKey3").ToString() ?? "Default string"; |
В целом же работа с Redis в C# строится довольно просто и позволяет встроить в приложение быстрое хранилище данных для кеширования без особых затрат времени и сил.
Добавить комментарий