Я использую 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
.
Где я ошибаюсь?
PS Когда я отлаживаю код на этапе
var s = (string) _cache.StringGet("CalculatorSalaries");
debuging skiping, когда значение существует для ключа "CalculatorSalaries", а ошибка получается только в консоли браузера
Вы вызываете SetAdd
... тем самым добавляя набор.
Возможно, вы имели в виду StringSet
:
var salaries = _service.LoadCalculatorSalaries();
_cache.StringSet("CalculatorSalaries", (string)salaries);
// ^^^^^^^^^ this