ServiceStack.Redis缓存在应用程序重新启动时清除

时间:2015-04-29 15:59:05

标签: servicestack.redis

我正在使用redis进行缓存,但我也在我的一个服务中使用ICacheClient来使用Get和Set等直接从Cache写入和读取。

Redis设置为将值保存到磁盘。因此,如果我关闭Redis并再次重新启动它,那么缓存的数据就在那里。但是,如果我在调试模式下运行我的servicestack服务并停止网站并再次重新启动它,则servicestack会在第一次调用servicestack服务时清除redis缓存。如何关闭它,或者它是一个错误。缓存中的项目不应该过期,并且在检查缓存中的各个项目时,它设置为不会过期,因此它不会过期,但该服务堆栈似乎在重新启动后第一次调用时刷新数据库。“ p>

        public ICacheClient CacheClient { get; set; }

        public object Get(KeyValues request)
        {

            var value = CacheClient.Get<object>(request.Key);

            var response = new KeyValuesResponse { Key = request.Key, Value       = value };
            return value;
        }

        public void Put(KeyValuesRecord request)
        {
           if (request.Key != null)
           { 
                CacheClient.Set(request.Key,request.Value);
           }
        }

        public void Post(KeyValuesRecord request)
        {
            CacheClient.Set(request.Key, request.Value);
        }

        public void Delete(KeyValues request)
        {
            CacheClient.Remove(request.Key);
        }

当我打电话给第一个Get with例如网址:http://localhost:4099/api/KeyValues/mykey

整个redis db(0)被清除。

0 个答案:

没有答案