我使用StackExchange。Redis与缓存一起工作。我有一个动作,从缓存返回值(如果值存在)
public ActionResult GetCalculatorSalaries()
{
var s = (string) _cache.StringGet("CalculatorSalaries");
if (String.IsNullOrEmpty(s))
{
var salaries = _service.LoadCalculatorSalaries();
_cache.SetAdd("CalculatorSalaries", (string)salaries);
return Json(salaries, JsonRequestBehavior.AllowGet);
}
return Json(s, JsonRequestBehavior.AllowGet);
}
_service.LoadCalculatorSalaries();
-这是一个从Azure Blob返回数据的服务,这里返回数据作为string
。
问题:我设置键"CalculatorSalaries"的值为string
,但当我试图得到它时,我得到一个error
,因为该键的值为set
类型。
我错在哪里?
注:当我在步骤
调试代码时 var s = (string) _cache.StringGet("CalculatorSalaries");
调试值存在时跳过键"CalculatorSalaries"和错误只在浏览器控制台中出现
您正在呼叫SetAdd
…从而添加一个集合。
也许你指的是StringSet
:
var salaries = _service.LoadCalculatorSalaries();
_cache.StringSet("CalculatorSalaries", (string)salaries);
// ^^^^^^^^^ this