private Dictionary <string, RedisValue> SetHash(string hashKey)
        {
            var hash = new Dictionary <string, RedisValue>();

            _objMemCache.Add(hashKey, hash, null, When.Always);
            return(hash);
        }
Esempio n. 2
0
        private DisjointedSortedSet SetSortedSet(string key)
        {
            var set = new DisjointedSortedSet();

            _objMemCache.Add(key, set, null, When.Always);
            return(set);
        }
        private HashSet <RedisValue> AddSet(string setKey)
        {
            HashSet <RedisValue> result = new HashSet <RedisValue>();

            _objMemCache.Add(setKey, result, null, When.Always);

            return(result);
        }
        internal async Task <RedisValueWithExpiry> GetFromMemoryWithExpiry(string key, Func <Task <RedisValueWithExpiry> > retrieval)
        {
            ValOrRefNullable <RedisValue> cachedValue = _memCache.Get <RedisValue>(key);

            if (cachedValue.HasValue)
            {
                //If we know the expiry, then a trip to redis isn't necessary.
                var expiry = _memCache.GetExpiry(key);
                if (expiry.HasValue)
                {
                    return(CreateRedisValueWithExpiry(cachedValue.Value, expiry.Value));
                }
            }

            RedisValueWithExpiry result = await retrieval();

            //Cache the value and expiry
            _memCache.Add(key, result.Value, result.Expiry, When.Always);

            return(result);
        }