我正在使用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)被清除。