Table of Contents

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

key string
ttl TimeSpan
factory Func<Task<T>>

Returns

Task<T>

Type Parameters

T