Method GetOrSetAsync
- Namespace
- UsluzionicaServer.Infrastructure.Redis
- Assembly
- UsluzionicaServer.dll
GetOrSetAsync<T>(string, TimeSpan, Func<Task<T>>)
Glavni obrazac: vrati iz keša, ili izračunaj i zapamti.
factory se poziva SAMO pri promašaju. Namerno NE postoji zaključavanje
oko njega: ako dva zahteva istovremeno promaše, oba će otići u bazu i
oba upisati isti rezultat. To je prihvatljivo za podatke koje keširamo
(kategorije, profili) — a lock bi ovde bio distribuirani lock po ključu,
što je više složenosti nego što jedan suvišan SELECT vredi.
public Task<T> GetOrSetAsync<T>(string key, TimeSpan ttl, Func<Task<T>> factory) where T : class
Parameters
Returns
- Task<T>
Type Parameters
T