Class RedisConnection
- Namespace
- UsluzionicaServer.Infrastructure.Redis
- Assembly
- UsluzionicaServer.dll
Jedna deljena veza ka Redis-u za ceo proces.
PRAVILO CELE FAZE B: Redis je UBRZANJE I DELJENO STANJE, NIKAD USLOV ZA RAD. Aplikacija mora da se digne i da radi i kad Redis uopšte nije konfigurisan (lokalni razvoj, integracioni testovi) i kad je konfigurisan ali mrtav (ispao je u produkciji). Nijedan korisnički zahtev ne sme pasti zbog keša.
Dve stvari to omogućavaju:
AbortOnConnectFail = false— bez togaConnectAsyncbaca izuzetak ako Redis nije tu u trenutku starta, i ceo proces umire. Sa njim, biblioteka vrati objekat koji je „trenutno nepovezan" i sama se povezuje u pozadini čim Redis oživi. Ovo je najvažnija jedna linija u celoj Fazi B.IsAvailable — svaki pozivalac prvo pita da li Redis uopšte postoji, umesto da hvata izuzetke po celom kodu.
StackExchange.Redis je namerno singleton: ConnectionMultiplexer je
thread-safe, multipleksira sve komande preko JEDNE TCP veze i skup je za
pravljenje. Otvaranje veze po zahtevu je klasična greška koja obori Redis
brže nego bilo koje opterećenje.
public sealed class RedisConnection : IAsyncDisposable
- Inheritance
-
RedisConnection
- Implements
- Inherited Members
Constructors
Properties
- IsAvailable
True samo ako je Redis konfigurisan I trenutno dostupan.
- IsConfigured
True ako je konekcija uopšte konfigurisana (bez obzira na trenutno stanje).
- Multiplexer
Multiplexer za slučajeve koji traže direktan pristup (SignalR, Data Protection).
Methods
- DisposeAsync()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
- GetDatabase()
Baza za komande, ili null ako Redis nije dostupan. Pozivaoci treba da provere null i tiho preskoče — ne da bacaju.
- GetSubscriber()
Subscriber za pub/sub (invalidacija keša), ili null.