Cloud Computing

Série Redis on Azure – Criando nossa base Redis e desenvolvendo nosso primeiro Cache

Seguindo a nossa série sobre a utilização do Redis no Azure, nesse artigo vamos criar nossa base Redis e vamos desenvolver um exemplo. Caso tenha perdido o artigo anterior, ele pode ser acessado através deste link.

Vale lembrar que, caso ainda não tenha uma subscription no Azure, será necessário criar uma (caso queira um passo a passo, clique aqui).

Criando nosso Redis no Azure

Primeiro vamos acessar o Portal do Azure através do link: https://portal.azure.com e efetuar o nosso login. Já no portal do Azure, vamos clicar em “Create a Resource>Databases>Redis Cache“, conforme na figura abaixo:

Redis on Azure
Figura 1

Feito isso, vamos preencher os dados e depois clicar em “Create” para a criação do nosso serviço de cache, conforme nos mostra a figura 2 abaixo:

Redis on Azure
Figura 2

O processo para finalizar a criação do serviço leva em média 15 minutos, e assim que ele terminar, acesse o Redis e clique em “Keys“. Em seguida, copie o endereço da Primary connection string, conforme nos mostra a figura abaixo:

Redis on Azure
Figura 3

Agora vamos esquecer por um breve momento o Azure e vamos criar uma aplicação do tipo Web API utilizando o ASP.NET Core 2. Se estiver usando o Visual Studio Code, é só abrir o terminal, navegar até a pasta desejada e digitar o comando:

dotnet new webapi

Após o termino da criação do projeto, abra o arquivo appsettings.json e crie uma conexão com a string de conexão do Redis que copiamos anteriormente, conforme o código abaixo:

"ConnectionStrings": {
    "RedisConn": "conexão do seu redis"
}

Agora no nosso arquivo Startup.cs, vamos adicionar o seguinte código:

services.AddDistributedRedisCache(options =>
{
    options.Configuration = Configuration.GetConnectionString("RedisConn");
    options.InstanceName = "ericsonfInstance";
});

E por último, vamos criar um Controller chamado RedisCacheController e dentro dele no método Get, vamos criar nosso cache através da Interface IDistributedCache, utilizando o código abaixo (comentários no próprio código para melhor entendimento):

public class RedisCacheController : Controller
{
    private readonly IDistributedCache _distributedCache;

    public RedisCacheController(IDistributedCache distributedCache)
    {
        _distributedCache = distributedCache;
    }

    // GET api/RedisCache
    [HttpGet]
    public string Get()
    {
        //Variável que vai receber uma data
        var date = string.Empty;
        //Key utilizada para armazenarmos o nosso cache (que será a data)
        var key = "distributedCacheKey";

        //Verifico se o cahce já existe
        date = _distributedCache.GetString(key);
        //Se existir exibo o texto Data cache com a data cacheada.
        if (!string.IsNullOrEmpty(date))
        {
            return string.Concat("Data cache: ", date);
        }
        //Senão criamos nosso cache com a data atual
        else
        {
            date = DateTime.Now.ToString();
            /* Nesta linha diz que o cache permanecera ativo para sempre desde que num periodo de 10 segundos alguém acesse ele.
            Caso você deseje que o cache desapareça em um determinado periodo de tempo independentemente de acesso,
            troque o comando SetSlidingExpiration para SetAbsoluteExpiration. */
            var cacheExpiration = new DistributedCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(10));
            //Cache sendo criado
            _distributedCache.SetString(key, date, cacheExpiration);
            //Retorno a Data atual pois ainda não havia nenhum cache com a key distributedCacheKey
            return string.Concat("Data atual: ", date);
        }
    }
}

Agora execute o projeto e veja que inicialmente ele trouxe a Data atual. Se você atualizar seu browser, verá que ele mudará o texto para Data cache sem alterar a data em si.

Para você visualizar o cache em si salvo no Redis, volte novamente para o Portal do Azure e clique em >_ Console, para abrir o console do Redis e nele digite monitor. Feito isso, execute novamente a aplicação e observe a sua Key e a data cacheada conforme mostram as figuras abaixo:

Redis on Azure
Figura 4
Redis on Azure
Figura 5

Como você pode observar, o mesmo data cacheado na tela é o mesmo que está salvo no Redis.

No próximo artigo da série utilizaremos outras maneiras de criar nosso cache e de administra-lo. E assim termino mais um artigo, espero que tenham gostado e até o próximo.

Leave a Reply

Your email address will not be published. Required fields are marked *