我使用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
返回。
问题:我为key" CalculatorSalaries"设置了值。作为string
但是当我尝试获取它时,我得到error
,因为该键的值是set
类型。
我哪里错了?
P.S。当我在步骤
调试代码时 var s = (string) _cache.StringGet("CalculatorSalaries");
当键存在值"计算器报价"和错误仅在浏览器控制台中获取
答案 0 :(得分:3)
您正在呼叫SetAdd
...从而添加一组。
也许你的意思是StringSet
:
var salaries = _service.LoadCalculatorSalaries();
_cache.StringSet("CalculatorSalaries", (string)salaries);
// ^^^^^^^^^ this