CSHARPPROGLIB Telegram 6028
🛠 Гид по 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
14👍5🔥2



tgoop.com/csharpproglib/6028
Create:
Last 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-поддержка и геоданные открывают новые горизонты.

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

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




Share with your friend now:
tgoop.com/csharpproglib/6028

View MORE
Open in Telegram


Telegram News

Date: |

A vandalised bank during the 2019 protest. File photo: May James/HKFP. Clear During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month. How to Create a Private or Public Channel on Telegram? The best encrypted messaging apps
from us


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