Constructor CacheService
- Namespace
- UsluzionicaServer.Infrastructure.Redis
- Assembly
- UsluzionicaServer.dll
CacheService(RedisConnection, ILogger<CacheService>)
Tanak sloj nad Redis-om za keširanje objekata.
Cela poenta ove klase je da pozivaoci NIKAD ne pišu try/catch oko keša. Svaka metoda ovde guta grešku i ponaša se kao promašaj:
• Redis mrtav pri čitanju → vrati null → pozivalac ide u bazu • Redis mrtav pri upisu → tiho ništa → sledeći zahtev opet ide u bazu
Rezultat je da gašenje Redis-a čini aplikaciju SPORIJOM, ne pokvarenom. Vidi RedisConnection za detalje.
Zašto ručno preko IDatabase, a ne IDistributedCache: IDistributedCache interfejs vraća bajtove i nema pojam o obrascu „uzmi ili izračunaj", pa bi se ista try/catch logika ponavljala na svakom pozivnom mestu.
public CacheService(RedisConnection redis, ILogger<CacheService> logger)
Parameters
redisRedisConnectionloggerILogger<CacheService>