课件.将Redis字符串值转换为set

本文关键字:转换 set 字符串 Redis 课件 | 更新日期: 2023-09-27 18:17:32

我使用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"和错误只在浏览器控制台中出现

课件.将Redis字符串值转换为set

您正在呼叫SetAdd…从而添加一个集合。

也许你指的是StringSet:

var salaries = _service.LoadCalculatorSalaries();
_cache.StringSet("CalculatorSalaries", (string)salaries);
//     ^^^^^^^^^ this