我使用 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 返回数据的服务,此处以 字符串
形式返回数据。
问题:我将键“CalculatorSalaries”的值设置为字符串
,但是当我尝试获取它时,我收到错误
,因为该键的值是类型设置
。
我哪里错了?
<小时/>附注当我在步骤
调试代码时var s = (string)_cache.StringGet("CalculatorSalaries");
当键“CalculatorSalaries”存在值时调试跳过,并且仅在浏览器控制台中出现错误
最佳答案
您正在调用SetAdd
...从而添加一个集合。
也许你的意思是StringSet
:
var salaries = _service.LoadCalculatorSalaries();
_cache.StringSet("CalculatorSalaries", (string)salaries);
// ^^^^^^^^^ this
关于c# - StackExchange.Redis 字符串值转换为集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25262650/