Строковое значение StackExchange.Redis преобразуется в набор

1

Я использую 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", а ошибка получается только в консоли браузера

Теги:
azure
redis
azure-redis-cache

1 ответ

3
Лучший ответ

Вы вызываете SetAdd... тем самым добавляя набор.

Возможно, вы имели в виду StringSet:

var salaries = _service.LoadCalculatorSalaries();
_cache.StringSet("CalculatorSalaries", (string)salaries);
//     ^^^^^^^^^ this
  • 0
    OhMyGod, да, спасибо большое :)
  • 0
    Нет проблем. Не забудьте поднять голос и принять ответы, которые помогут вам :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню