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