TG Telegram Group & Channel
Библиотека шарписта | C#, F#, .NET, ASP.NET | United States America (US)
Create: Update:

🛠 Гид по Redis в C#

Представьте, что ваши запросы обрабатываются мгновенно. Для этого можно использовать Redis. Сейчас покажем как это сделать.

1. Устанавливаем

Install-Package StackExchange.Redis


2. Создаём подключение
using StackExchange.Redis;

var redis = ConnectionMultiplexer.Connect("localhost:6379");
IDatabase db = redis.GetDatabase();


3. Базовые операции: SET и GET
// Записываем строку
bool setResult = db.StringSet("user:42:name", "ProgLib");
Console.WriteLine($"SET OK: {setResult}");

// Читаем строку
string name = db.StringGet("user:42:name");
Console.WriteLine($"GET: {name}"); // → ProgLib


StringSet возвращает true, если всё прошло гладко. StringGet в случае отсутствия ключа вернёт null.

4. Механизм подписки и публикации

Подписчик:
var sub = redis.GetSubscriber();
sub.Subscribe("notifications", (channel, message) => {
Console.WriteLine($"Получено сообщение: {message}");
});


Публикация:
sub.Publish("notifications", "Новый заказ №128");


5. Дополнительно: списки, хэши и TTL

Пушим и читаем из конца/начала:
db.ListRightPush("tasks", "Сделать отчёт");
var task = db.ListLeftPop("tasks");


Группируем поля в одном ключе:
db.HashSet("session:1001", new HashEntry[] {
new HashEntry("userId", 42),
new HashEntry("expiresAt", DateTime.UtcNow.AddMinutes(30).ToString("O"))
});
var expires = db.HashGet("session:1001", "expiresAt");


TTL для удаления ключей через время:
db.StringSet("cache:item:7", "данные", TimeSpan.FromMinutes(5));


Бонус: бест практис

• ConnectionMultiplexer — тяжёлый объект, создавайте один раз.

• Используйте ConfigureAwait(false) и ловите исключения RedisConnectionException.

• Выполняйте атомарные операции на стороне сервера для консистентности.

• При росте нагрузки переходите на кластерный режим или Redis Sentinel для отказоустойчивости.

В будущем Redis становится центром событийной архитектуры: Stream-поддержка и геоданные открывают новые горизонты.

🐸Библиотека шарписта #буст

🛠 Гид по Redis в C#

Представьте, что ваши запросы обрабатываются мгновенно. Для этого можно использовать Redis. Сейчас покажем как это сделать.

1. Устанавливаем
Install-Package StackExchange.Redis


2. Создаём подключение
using StackExchange.Redis;

var redis = ConnectionMultiplexer.Connect("localhost:6379");
IDatabase db = redis.GetDatabase();


3. Базовые операции: SET и GET
// Записываем строку
bool setResult = db.StringSet("user:42:name", "ProgLib");
Console.WriteLine($"SET OK: {setResult}");

// Читаем строку
string name = db.StringGet("user:42:name");
Console.WriteLine($"GET: {name}"); // → ProgLib


StringSet возвращает true, если всё прошло гладко. StringGet в случае отсутствия ключа вернёт null.

4. Механизм подписки и публикации

Подписчик:
var sub = redis.GetSubscriber();
sub.Subscribe("notifications", (channel, message) => {
Console.WriteLine($"Получено сообщение: {message}");
});


Публикация:
sub.Publish("notifications", "Новый заказ №128");


5. Дополнительно: списки, хэши и TTL

Пушим и читаем из конца/начала:
db.ListRightPush("tasks", "Сделать отчёт");
var task = db.ListLeftPop("tasks");


Группируем поля в одном ключе:
db.HashSet("session:1001", new HashEntry[] {
new HashEntry("userId", 42),
new HashEntry("expiresAt", DateTime.UtcNow.AddMinutes(30).ToString("O"))
});
var expires = db.HashGet("session:1001", "expiresAt");


TTL для удаления ключей через время:
db.StringSet("cache:item:7", "данные", TimeSpan.FromMinutes(5));


Бонус: бест практис

• ConnectionMultiplexer — тяжёлый объект, создавайте один раз.

• Используйте ConfigureAwait(false) и ловите исключения RedisConnectionException.

• Выполняйте атомарные операции на стороне сервера для консистентности.

• При росте нагрузки переходите на кластерный режим или Redis Sentinel для отказоустойчивости.

В будущем Redis становится центром событийной архитектуры: Stream-поддержка и геоданные открывают новые горизонты.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍5🔥2


>>Click here to continue<<

Библиотека шарписта | C#, F#, .NET, ASP.NET






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)