Which works like a “write through multi-tiered cache” where all “writes” are made to all registered cache providers whilst “reads” are only accessed until a value exists.
services.AddSingleton<ICacheClient>(c => new MultiCacheClient(
new MemoryCacheClient(),
c.GetRequiredService<IRedisClientsManager>().GetCacheClient()));
So whilst it will make writes to both providers it’ll only retrieve the value from the first MemoryCacheClient provider which has the value. You may still not have a great experience if the redis server is hanging clients as writes would need to wait until timeout elapsed, but if the redis server was completely offline the calls to redis should fail immediately which would be preferred.