public static new async Task <T> CacheShellAsync <T>(string key, int timeout, Func <Task <T> > func)
 {
     try
     {
         return(await _redisManager.CacheShellAsync(key, timeout, func));
     }
     catch (Exception)
     {
         return(default);
 public Task <T> TryGetAsync <T>(string key, Func <Task <T> > createFn = null, TimeSpan?expiry = null) => _instance.CacheShellAsync(key, (expiry.HasValue ? (int)expiry.Value.TotalSeconds : CacheShellTimeoutSeconds), createFn);