Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP

14 min

Redis é um banco de dados NoSQL de código aberto. Ele armazena dados de forma que uma chave corresponda a um valor e coopera com a memória (RAM). O desempenho é muito melhor do que um banco de dados relacional e pode ser usado em muitas linguagens de programação. Além do tipo de string, o valor do Redis também tem várias estruturas especiais, incluindo set, zset, list e hash, e fornece uma variedade de maneiras distintas de manipular esses campos.

Para começar, lembre-se que vamos usar o Ubuntu Server, se você ainda não fez o download você pode visitar o site do Ubuntu e fazer agora. Para este tutorial estamos utilizando o Ubuntu Server 20.04.3. No entanto, o tutorial vai funcionar em qualquer versão posterior do Ubuntu. Mas, informamos que não testamos em sistemas baseados no Ubuntu Server.

Instalando Redis no Ubuntu Server

Para instalar o Redis no Ubuntu Server não tem segredo, execute o comando abaixo:

Terminal
sudo apt install redis-server
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 1
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 24

Agora, após a instalação do Redis, lembre-se que a porta TCP padrão usada pelo servidor Redis é 6379. Você pode usar o seguinte comando para verificar se o servidor Redis foi realmente instalado corretamente:

Terminal
sudo netstat -tlnp | grep redis
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 3
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 25

Nota especial sobre o netstat, se você encontrar o erro abaixo, não se preocupe, o comando não está errado é que o net-tools não está instalado, para isso execute o comando abaixo e retorne a execução do comando anterior:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 2
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 26

Como abaixo vai instalar o netstat que está no net-tools:

Terminal
sudo apt install net-tools

Sobre o comando netstat

Os comandos executados com o netstat podem exibir informações sobre conexões de rede, tabelas de roteamento, estatísticas de interface, conexões mascaradas e multicast.

  • O parâmetro -l só pode mostrar a conexão que está sendo monitorada. Se com o netstat não for fornecido nenhum parâmetro, a conexão no monitoramento será ignorada.
  • O parâmetro -t só pode mostrar a conexão TCP.
  • O parâmetro -n permite que o IP seja enviado diretamente, sem a necessidade de verificar o nome de domínio correspondente por meio do DNS.
  • O parâmetro -p pode exibir o curso ocupado pela conexão.

Configurando o Redis no Ubuntu Server

O caminho do arquivo de configuração do servidor Redis é /etc/redis/redis.conf. Lembre-se de usar o sudo ou o ROOT para editar o arquivo, ou ele vai ser exibido em branco. Mas, saiba que ele é assim por padrão:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 4
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 27

Eu usei o comando abaixo para exibir este arquivo, lembrando que eu usei o nano para editar, mas você pode usar o editor que preferir:

Terminal
sudo /etc/redis/redis.conf

Os itens de configuração mais importantes são:

  • bind: Se você deseja se conectar ao servidor Redis remotamente, você precisa definir este item. Consulte este artigo .
  • supervised: Configure o sistema init para executar o Redis. O valor padrão é noque, embora nopareça funcionar normalmente, é melhor alterá- systemdlo para que nosso sistema init possa rastrear corretamente se o Redis ainda está operando normalmente.
  • databases: Define a quantidade de bases de dados disponíveis.Ao indexar, conta-se desde o 0início.Por default, será utilizada a base de dados com índice de valor 0. O valor padrão deste item é 16que este servidor Redis pode usar 16 bancos de dados.
  • save: Defina para salvar os dados atuais na memória como um arquivo (instantâneo) se houver um certo grau de alteração no banco de dados dentro de um determinado intervalo. saveO formato de gravação de é save , o que save 60 10000significa que um instantâneo é obtido se pelo menos 10.000 chaves forem alteradas em 60 segundos. O caminho de armazenamento padrão para instantâneos é /var/lib/redis/dump.rdb.
  • requirepass: Defina a senha necessária para o cliente se conectar ao servidor Redis. O padrão não é definido, o que significa que a função de verificação de senha não está habilitada.
  • maxclients: Defina o número máximo de conexões. O padrão não está definido, como está 10000.
  • maxmemory: Defina o uso máximo de memória. Se o uso de memória atingir o limite, ele maxmemory-policytentará remover a chave de acordo com a estratégia definida pelo projeto. Se não puder ser removida, fará com que a operação de inserção ou modificação retorne um erro. Não há configuração por padrão, o que significa que não há restrição.
  • maxmemory-policy: Estratégia adotada quando o uso da memória atinge o limite. Não há configuração por padrão, pois é noeviction, não remova a chave.

Outras estratégias são as seguintes:

  • volatile-lru: Remova as chaves expiradas de acordo com o algoritmo LRU.
  • allkeys-lru: Remova a chave de acordo com o algoritmo LRU. (Independentemente de ter expirado ou não)
  • volatile-lfu: Remova as chaves expiradas de acordo com o algoritmo LFU.
  • allkeys-lfu: Remova a chave de acordo com o algoritmo LFU. (Independentemente de ter expirado ou não)
  • volatile-random: Remova as chaves expiradas aleatoriamente.
  • allkeys-random: Remova as chaves aleatoriamente. (Independentemente de ter expirado ou não)
  • volatile-ttl: Remova a chave com o menor TTL entre as chaves expiradas.

Aplicando as novas configurações do Redis

Depois de reescrever o arquivo de configuração do Redis e salvá-lo, as novas configurações não serão aplicadas imediatamente ao servidor Redis em execução. Para fazer com que o servidor Redis leia novamente o arquivo de configuração, é melhor usar o seguinte comando para verificar se o arquivo de configuração está correto para evitar que o servidor Redis interrompa o serviço devido a erros no arquivo de configuração.

Terminal
sudo redis-server /etc/redis/redis.conf
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 5
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 28

Em seguida, execute o seguinte comando para recarregar o arquivo de configuração do Redis:

Terminal
sudo systemctl restart redis
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 6
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 29

Como usar o cliente Redis (redis-cli) e os comandos do Redis

redis-cli – é uma ferramenta de comando do cliente para Redis. Execute o seguinte comando para se conectar ao servidor Redis:

Terminal
redis-cli
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 7
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 30

Se houver configurações requirepass, use os authcomandos do Redis Shell para verificar a senha. Por exemplo, se a senha for foobared, você deve inserir o seguinte comando.

Terminal
auth foobared

Em seguida, você pode começar a digitar comandos do Redis para operar o banco de dados Redis.

Por exemplo, o comando a seguir pode criar um conjunto de dados de chave foo e valor bar para o banco de dados padrão 0.

Terminal
set foo bar

E o comando a seguir pode obter fooos dados da chave:

Terminal
get foo
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 8
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 31

O comando a seguir pode exibir o número de chaves em todos os bancos de dados:

Terminal
info keyspace
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 9
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 32

Acesse o banco de dados Redis no programa PHP

Para acessar o banco de dados Redis em um programa PHP, é necessário o suporte de módulos relacionados ao Redis. Use os seguintes comandos para visualizar os módulos atuais no ambiente PHP:

Terminal
php -m
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 11
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 33

Mas, se você ver o erro abaixo, é apenas que você não tem o PHP instalado, basta executar o comando orientado que tudo será resolvido:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 10
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 34
Terminal
sudo apt install php7.4-cli

Conforme mostrado na figura acima, não há módulo relacionado ao Redis, então use o seguinte comando para instalar:

Terminal
sudo apt install php-redis

Após a instalação, você pode php -m para ver os módulos relacionados ao Redis:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 12
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 35

O uso do Redis em PHP é o seguinte:

/var/www/html/index.php
<?php    
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
            
    $redis->set("foo", "bar");
    echo $redis->get("foo");                                                         
?>

Arquivo API:

https://github.com/phpredis/phpredis/blob/develop/README.markdown

Sobre o phpRedisAdmin

phpRedisAdmin é um backend de gerenciamento frequentemente usado ao usar o ambiente PHP + Redis, mas não é um item necessário. Se você não precisar, pode pular esta parte do conteúdo:

Instale php-mbstring

phpRedisAdmin usará o módulo php-mbstring, então você deve primeiro instalá-lo com o seguinte comando:

Terminal
sudo apt install php-mbstring
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 13
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 36

Instale o phpRedisAdmin

Execute o seguinte comando no terminal para instalar o phpRedisAdmin no Ubuntu Server:

Terminal
curl -s http://getcomposer.org/installer | php
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 14
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 37

Em seguida, execute o seguinte comando para instalar o phpRedisAdmin no diretório /usr/local/share/phpredisadmin:

Antes, veja se você tem o 7zip instalado, vamos precisar dele:

Terminal
sudo apt install p7zip-full p7zip-rar

Agora podemos seguir:

Terminal
sudo php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin /usr/local/share/phpredisadmin
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 18
Saída correta e inclusiva da instalação do phpredisadmin sem erros

Resolução de possíveis problemas nesta etapa!

Se você ver o erro abaixo apontando que você não tem o 7zip, vamos precisar instalar. Do contrário, pule a resolução de possíveis problemas:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 15
Saída com erros

Para isso, execute o comando:

Terminal
sudo apt install p7zip-full p7zip-rar

E assim, você verá:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 16
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 38

Agora, vamos executar o comando novamente. No entanto, é bem provável que sejamos informados que o diretório não esteja vazio:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 17
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 39

Então, agora vamos precisar remover o diretório e criar de novo:

Terminal
sudo rm -r /usr/local/share/phpredisadmin

Feito! Agora execute o comando para instalar o phpredisamin novamente:

Terminal
sudo php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin /usr/local/share/phpredisadmin
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 18
Saída sem erros

Execute o seguinte comando para copiar o modelo de arquivo de configuração phpRedisAdmin:

Terminal
sudo cp /usr/local/share/phpredisadmin/includes/config.sample.inc.php /usr/local/share/phpredisadmin/includes/config.inc.php
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 19
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 40

O arquivo /usr/local/share/phpredisadmin/includes/config.inc.php é o arquivo de configuração do phpRedisAdmin! Veja:

Terminal
sudo nano /usr/local/share/phpredisadmin/includes/config.inc.php
ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 20
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 41

Se o phpRedisAdmin e o servidor Redis estiverem sendo executados no mesmo sistema operacional, é recomendável alterar o valor do campo scheme no arquivo de configuração para unix. Se o servidor Redis tiver configurações requirepass, você precisará modificar os authcampos no arquivo de configuração.

Configurando o Nginx

O phpRedisAdmin esta no diretório /usr/local/share/phpredisadmin. Podemos usar os root comandos do arquivo de configuração Nginx para criar um bloco location no phpRedisAdmin. O método de configuração é o seguinte:

server {
    index index.html index.php;
 
    set $php_uds unix:/run/php/php7.4-fpm.sock;
 
    location ~ \.php$ {
        fastcgi_pass $php_uds;
        include fastcgi.conf;
    }
 
    location = /phpredisadmin {
        return 301 /phpredisadmin/;
    }
 
    location ^~ /phpredisadmin/ {
        root /usr/local/share;
       
        allow 127.0.0.1;
        deny all;
       
        if ($uri ~ \.php$) {
            fastcgi_pass $php_uds;
        }   
       
        include fastcgi.conf;
    }
}

Desta forma, o /phpredisadmin/phpRedisAdmin pode ser aberto enviando uma solicitação com o prefixo do caminho do protocolo HTTP no mesmo host. Como mostrado abaixo:

ubuntu server como configurar um servidor redis e acessar o banco de dados redis em um programa php 21
Ubuntu Server: Como configurar um servidor Redis e acessar o banco de dados Redis em um programa PHP 42

A adição do comando allow e deny evita que o phpRedisAdmin seja atacado por usuários mal intencionados. Se quiser usar phpRedisAdmin em outro host, você pode adicionar mais comandos allow ou simplesmente mudar para a autenticação HTTP básica.

Na verdade, o próprio phpRedisAdmin tem a função de fornecer autenticação. Você pode encontrar os campos de configuração relevantes no arquivo de configuração, mas eu recomendaria configurar a conta e autenticação através do Nginx.

Aplicar as novas configurações do Nginx

Depois de reescrever o arquivo de configuração Nginx e salvá-lo, as novas configurações não serão aplicadas imediatamente ao servidor Nginx em execução.

Para fazer o servidor Nginx reler o arquivo de configuração, é melhor usar o seguinte comando para verificar se o arquivo de configuração está correto, para evitar que o servidor Nginx interrompa o serviço devido ao erro do arquivo de configuração.

Terminal
sudo nginx -t

Em seguida, execute o seguinte comando para recarregar o arquivo de configuração Nginx:

Terminal
sudo nginx -s reload

Execute se o phpRedisAdmin e servidor Redis não estão no mesmo sistema operacional

Para permitir que o phpRedisAdmin se conecte a outros sistemas operacionais ou servidores Redis em outros hosts, você deve modificar o /usr/local/share/phpredisadmin/includes/config.inc.php especialmente os campos host e port no arquivo de configuração do phpRedisAdmin e definir os valores scheme e tcp. Esperamos ter ajudado você!

Compartilhe este artigo