Ответ
Для работы с Redis в C# чаще всего используется клиентская библиотека StackExchange.Redis. Ниже приведён базовый пример подключения и операций.
using StackExchange.Redis;
using System;
class RedisExample
{
static void Main()
{
// 1. Установка соединения (синглтон на всё приложение)
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379");
IDatabase db = redis.GetDatabase();
// 2. Операции со строковыми значениями (String)
bool setSuccess = db.StringSet("myKey", "Hello, Redis!");
string cachedValue = db.StringGet("myKey");
Console.WriteLine($"StringGet: {cachedValue}"); // Hello, Redis!
// 3. Работа с хешами (Hash) для хранения объектов
db.HashSet("user:1000", new HashEntry[]
{
new HashEntry("name", "Alice"),
new HashEntry("email", "alice@example.com"),
new HashEntry("score", 1250)
});
string userName = db.HashGet("user:1000", "name");
Console.WriteLine($"HashGet name: {userName}"); // Alice
// 4. Установка времени жизни ключа (TTL)
db.KeyExpire("myKey", TimeSpan.FromMinutes(5));
}
}
Практические рекомендации:
ConnectionMultiplexer— потокобезопасный и предназначен для многократного использования. Создавайте один экземпляр и используйте его на протяжении всего жизненного цикла приложения.- Асинхронные методы (например,
StringSetAsync,StringGetAsync) предпочтительны для неблокирующих операций в веб-приложениях. - Все данные в Redis хранятся в виде байтовых строк. Библиотека автоматически сериализует строки и числа, но для сложных объектов потребуется ручная сериализация (например, в JSON).
- Для структурированного хранения данных, помимо String и Hash, Redis предоставляет типы List, Set, Sorted Set и Stream.