Как подключиться к кэшу Azure Redis

Я пытаюсь подключиться к экземпляру кэша Azure Redis (предварительная версия) из веб-проекта Visual Studio.

Я получаю следующую ошибку: «Не удалось загрузить файл или сборку». Токен авторизации, переданный пользователем, недействителен».

Я сделал следующее: 1) вошел на портал Azure и создал новый Redis Cache PREVIEW 2) открыл Visual Studio и создал новый проект (Web MVC) 3) Управление пакетами Nuget — обновить все 4) установить Пакет — «Windows Azure Cache Version 2.2.0.0». 5) Откройте Web.Config в разделе dataCacheClients и выполните следующее:

<dataCacheClients>
<dataCacheClient name="default">
  <autoDiscover isEnabled="true" identifier="mycache.redis.cache.windows.net"  />
    <securityProperties mode="Message" sslEnabled="false">
    <messageSecurity authorizationInfo="xxxxxxxmykeyxxxxxxxx"/>
  </securityProperties>
</dataCacheClient>
</dataCacheClients>

6) Изменен HomeController.cs на следующее:

using Microsoft.ApplicationServer.Caching;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace CacheRedisTest.Controllers
{
public class HomeController : Controller
{
    static DataCacheFactory myFactory;
    static DataCache myCache;
    public ActionResult Index()
    {
        if (myCache == null)
        {
            myFactory = new DataCacheFactory();
            myCache = myFactory.GetDefaultCache();
        }

        return View();
    }
}
}

Нужны ли мне какие-то другие пакеты nuget, специфичные для Redis? Кроме того, где мне указать номер порта, указанный в консоли Azure?

Спасибо за прочтение


person Frank Cannon    schedule 11.05.2014    source источник
comment
Это проще, вам не нужен DataCacheFactory — используйте ConnectionMultiplexer. См. раздел azure.microsoft.com/blog/2014/06/05/   -  person RickAndMSFT    schedule 13.06.2014


Ответы (3)


Для кэша Azure Redis необходимо использовать клиентскую библиотеку Redis, например StackExchange.Redis. Клиентская библиотека «Кэш Windows Azure» относится к управляемому кэшу Azure.

После добавления пакета NuGet StackExchange.Redis в проект подключитесь к Redis с помощью объекта ConnectionMultiplexer:

var cm  = ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,ssl=true,password=<password>");
var db = connection.GetDatabase();

db.StringSet("key", "value");
var key = db.StringGet("key");

Ссылки с дополнительной информацией:

http://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/ https://github.com/StackExchange/StackExchange.Redis

person Mike Harder    schedule 12.05.2014
comment
Кажется, чтобы подключиться с помощью этих инструкций. Однако в первый раз, когда я сделал это, через несколько секунд у меня появилось диалоговое окно с надписью Find Source:SocketManager.Poll.cs, что, я думаю, означает, что он не может использовать определенный файл. - person Frank Cannon; 14.05.2014
comment
Диалоговое окно с сообщением «Найти *.cs», вероятно, связано с тем, что было выбрано исключение, и VS пытался загрузить соответствующий исходный файл. - person Mike Harder; 15.05.2014
comment
Здравствуйте, ребята, для клиента StackExchange.Redis требуется .NET Framework 4 или выше. У меня есть проект .NET Framework 3.5, и мне нужно использовать с ним кэш Azure Redis. Но я не могу найти ни одного клиента, поддерживающего .NET Framework 3.5. Кто-нибудь может мне помочь? - person Gev; 18.11.2015

Вам не нужны dataCacheClients в вашем web.config - вы не захотите проверять секрет в своем источнике. Вы бы настроили это так в контроллере MVC

    public class MoviesController : Controller
   {
      private MovieDBContext db = newMovieDBContext();
      private static ConnectionMultiplexer connection;
      private static ConnectionMultiplexer Connection
      {
         get
         {
            if (connection == null || !connection.IsConnected)
            {
               connection = ConnectionMultiplexer.Connect(
               "<your Cache>.redis.cache.windows.net,ssl=true," +
               "password=<Your password>");
            }
            return connection;
         }
      }

Опять же, не добавляйте свою учетную запись/пароль в исходный код — используйте ConfigurationManager.AppSettings[«Учетная запись»], ConfigurationManager.AppSettings[«Пароль»] — и сохраняйте значения на вкладке «Настройка» на портале Azure.

дополнительные сведения см. в разделе http://azure.microsoft.com/blog/2014/06/05/mvc-movie-app-with-azure-redis-cache-in-15-minutes/

person RickAndMSFT    schedule 13.06.2014
comment
Является ли пароль первичным ключом?? - person Sam; 07.11.2014

Вот статья о Как использовать Redis Cache

person user3653937    schedule 19.05.2014
comment
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылку, могут стать недействительными, если связанная страница изменится. - person Nimantha; 11.06.2020
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. – Из обзора - person Suraj Singh; 11.06.2020