Introdução

O Redis é geralmente usado como um banco de dados, cache e intermediário de mensagens. Além disso, é conhecido pela flexibilidade e desempenho, uma vez que suporta uma ampla variedade de estruturas de dados.

Neste tutorial, você aprenderá como instalar e configurar o Redis pelo código fonte em um servidor Ubuntu 18.04.

Pré-requisitos

Para seguir este tutorial, você vai precisar de:

  • Acesso a um servidor Ubuntu 18.04 com um usuário com privilégios sudo e firewall.

Etapa 1 - Instalando as dependências de desenvolvimento teste

O primeiro passo é fazer o download e instalar o Redis a partir do código fonte, para garantir que seja a última versão do software.

Para isso, instale o pacote essencial de compilação nos repositórios Ubuntu. Além disso, baixe o pacote tcl que você pode usar para testar os binários.

Atualize o cache do pacote apt local e instale as dependências digitando

:

$$

apt update apt install build-essential tcl

Agora que todos esses pacotes estão em dia, você pode começar a instalação do Redis.

Etapa 2 - Baixando, Compilando e Instalando o Redis

Depois que todas as dependências estiverem configuradas, você poderá instalar o Redis direto do código fonte. Comece navegando para este diretório:

$

cd /tmp

Depois, use curl para baixar a última versão estável do Redis. A última versão sempre estará disponível em uma URL:

$

curl -O http://download.redis.io/redis-stable.tar.gz

Descompacte o tarball:

$

tar xzvf redis-stable.tar.gz

Depois, vá até o diretório fonte do Redis que acabou de ser extraído:

$

cd redis-stable

Compile os binários do Redis digitando o seguinte:

$

make

Uma vez que os binários estejam compilados, execute o arquivo de teste para ter certeza que tudo foi construído corretamente:

$

make test

Isso normalmente leva alguns minutos para ser concluído. Após a conclusão do teste, instale os binários no sistema digitando:

$

sudo make install

Agora a instalação do Redis está concluída, e você está pronto para começar a configurá-lo. Para isso, você precisará criar um diretório de configuração. O diretório de configuração Redis está convencionalmente localizado em /etc/ e você pode criá-lo digitando:

$

mkdir /etc/redis

Em seguida, copie o arquivo de configuração Redis que acompanha o arquivo de origem Redis:

$

cp /tmp/redis-stable/redis.conf /etc/redis

Abra o arquivo com o seu editor de texto para fazer algumas alterações na configuração:

$

nano /etc/redis/redis.conf

Dentro do arquivo, encontre a pasta supervised. Essa pasta permite que você declare um sistema init para gerenciar o Redis como um serviço, fornecendo mais controle sobre sua operação. A pasta supervised é definida como no por padrão. Como você está executando o Ubuntu, que usa o sistema systemd init, altere para systemd:

/etc/redis/redis.conf

... If you run Redis from upstart or systemd, Redis can interact with your #supervision tree. Options: #supervised no - no supervision interaction #supervised upstart - signal upstart by putting Redis into SIGSTOP mode3 #supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET #supervised auto - detect upstart or systemd method based on #UPSTART_JOB or NOTIFY_SOCKET environment variables #Note: these supervision methods only signal "process is ready." #They do not enable continuous liveness pings back to your supervisor. supervised systemd

. . .

Em seguida, encontre a diretriz dir. Esta opção especifica o diretório que o Redis usará para despejar dados persistentes. Você precisa alterar isso para um local em que o Redis tenha permissões de gravação e que não seja visível pelos usuários normais. Use o diretório /var/lib/redis para isso; você criará este diretório e ajustará suas permissões posteriormente na etapa 4:

/etc/redis/redis.conf

. . .

#The working directory. #The DB will be written inside this directory, with the filename specified above #using the 'dbfilename' configuration directive. #The Append Only File will also be created inside this directory. #Note that you must specify a directory here, not a file name. dir /var/lib/redis

. . .

Salve o arquivo e depois feche a janela. Essas são todas as alterações que você precisa fazer no arquivo de configuração Redis, mas ainda há algumas etapas que você precisa seguir antes de começar a usá-lo.

Etapa 3 - Criando um arquivo systemd do Redis

Para ter mais controle sobre o Redis, crie um arquivo de unidade systemd que permita que ele funcione como um serviço systemd. Isso também oferece o benefício de facilitar a inicialização do Redis sempre que o servidor inicializar.

Primeiramente, crie e abra o arquivo /etc/systemd/system/redis.service:

$

nano /etc/systemd/system/redis.service

Uma vez com o arquivo, inicie a seção [Unit] adicionando a descrição do serviço e definindo um requerimento de que a rede deve estar disponível antes que seja iniciado:

/etc/systemd/system/redis.service

[Unit] Description=Redis In-Memory Data Store After=network.target

A seção [Service] é onde você especifica o comportamento do serviço. Você não deve executar este serviço como root, por motivos de segurança. Em vez disso, você deve ter um usuário e um grupo dedicados e pode chamar esses dois de redis.

Para iniciar o serviço, basta chamar o binário redis-server e apontá-lo para sua configuração. Para pará-lo, use o comando Redis shutdown, que pode ser executado com o redis-cli binary. Além disso, como é desejável que o Redis se recupere de falhas sempre que possível, defina a diretiva Restart para always:

/etc/systemd/system/redis.service

[Unit] Description=Redis In-Memory Data Store After=network.target

[Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always

Por fim, adicione uma seção [Install]. Lá, defina o destino do sistema ao qual o serviço deve se conectar se estiver ativado (o que significa que está configurado para iniciar na inicialização):

/etc/systemd/system/redis.service

[Unit] Description=Redis In-Memory Data Store After=network.target

[Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always

[Install] WantedBy=multi-user.target

Salve e feche o arquivo quando terminar. O arquivo de unidade do sistema Redis está pronto. Antes que ele possa ser usado, você deve criar o usuário e o grupo dedicados mencionados na seção [Service] e conceder a eles as permissões necessárias para funcionar.

Etapa 4 - Criando o Usuário, Grupo e Diretórios Redis

Por fim, você precisa criar um usuário, grupo e diretório que você referenciou nos arquivos anteriores.

Comece criando o usuário e grupo redis. Você pode fazer isso em um único comando digitando:

$

adduser --system --group --no-create-home redis

Depois, crie o diretório /var/lib/redis digitando o seguinte:

$

mkdir /var/lib/redis

Conceda a propriedade deste diretório ao grupo e usuário redis:

$

chown redis:redis /var/lib/redis

Por fim, ajuste as permissões para que usuários comuns não possam acessar este local:

$

chmod 770 /var/lib/redis

Agora você pode abrir o Redis e testar todas as funcionalidades!

Etapa 5 - Iniciando e Testando o Redis

Inicie o systemd com o código:

$

systemctl start redis

Verifique se o serviço não possui erros executando:

$

systemctl status redis

Isso produzirá um resultado parecido com o seguinte:

● redis.service - Redis In-Memory Data Store

Loaded: loaded (/etc/systemd/system/redis.service; disabled; vendor preset: enabled)

Active: active (running) since Tue 2018-05-29 17:49:11 UTC; 4s ago

. . .

Para testar se seu serviço está funcionando corretamente, conecte-se ao servidor Redis com o cliente de linha de comando:

$

redis-cli

Na janela de comando seguinte, teste a conectividade digitando:

127.0.0.1:6379>

ping

Você terá este retorno:

PONG

Em seguida, teste a configuração de chaves:

127.0.0.1:6379>

set test "It's working!"

OK

Retrieve the test value by typing:

Você deve conseguir recuperar o valor que armazenou:

"It's working!"

Depois de confirmar que você pode buscar o valor, saia do prompt do Redis para voltar ao shell:

127.0.0.1:6379>

exit

Por fim, verifique se o Redis é capaz de manter os dados mesmo depois de parados ou reiniciados. Para fazer isso, primeiro reinicie a instância Redis:

$

systemctl restart redis

Em seguida, conecte-se ao cliente novamente e confirme se o seu valor de teste ainda está disponível:

$$

redis-cli 127.0.0.1:6379> get test

O valor da sua chave ainda deve estar acessível:

"It's working!"

Saia para o shell novamente quando terminar:

127.0.0.1:6379>

exit

Supondo que todos esses testes funcionaram e que você gostaria de iniciar o Redis automaticamente quando o servidor inicializar, ative o serviço systemd:

$

systemctl enable redis

Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.

Com isso, sua instalação do Redis está completa. Se você tiver alguma dúvida sobre esta instalação e configuração do tutorial Redis, deixe um comentário abaixo.

Conclusão

Neste tutorial, você instalou, compilou e construiu o Redis a partir de seu código-fonte, o configurou para ser executado como um serviço systemd e testou se a instalação do Redis está funcionando corretamente

Read more about: RedisFeaturedUbuntuPT-BR