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
0 COMMENTS