Example #1
0
        public Stream Set([NotNull] string key, object state, [NotNull] Action <ICacheContext> create)
        {
            Connect();

            var context = new CacheContext(key)
            {
                State = state
            };

            create(context);
            var value  = context.GetBytes();
            var result = _cache.ScriptEvaluate(SetScript, new RedisKey[] { _instance + key },
                                               new RedisValue[]
            {
                context.AbsoluteExpiration?.Ticks ?? NotPresent,
                context.SlidingExpiration?.Ticks ?? NotPresent,
                context.GetExpirationInSeconds() ?? NotPresent,
                value
            });

            // TODO: Error handling
            return(new MemoryStream(value, writable: false));
        }
Example #2
0
        public Stream Set([NotNull] string key, object state, [NotNull] Action<ICacheContext> create)
        {
            Connect();

            var context = new CacheContext(key) { State = state };
            create(context);
            var value = context.GetBytes();
            var result = _cache.ScriptEvaluate(SetScript, new RedisKey[] { _instance + key },
                new RedisValue[]
                {
                    context.AbsoluteExpiration?.Ticks ?? NotPresent,
                    context.SlidingExpiration?.Ticks ?? NotPresent,
                    context.GetExpirationInSeconds() ?? NotPresent,
                    value
                });
            // TODO: Error handling
            return new MemoryStream(value, writable: false);
        }