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:
sudo apt install redis-server
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:
sudo netstat -tlnp | grep redis
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:
Como abaixo vai instalar o netstat que está no net-tools:
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:
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:
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.
sudo redis-server /etc/redis/redis.conf
Em seguida, execute o seguinte comando para recarregar o arquivo de configuração do Redis:
sudo systemctl restart redis
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:
redis-cli
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.
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.
set foo bar
E o comando a seguir pode obter foo
os dados da chave:
get foo
O comando a seguir pode exibir o número de chaves em todos os bancos de dados:
info keyspace
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:
php -m
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:
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:
sudo apt install php-redis
Após a instalação, você pode php -m para ver os módulos relacionados ao Redis:
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:
sudo apt install php-mbstring
Instale o phpRedisAdmin
Execute o seguinte comando no terminal para instalar o phpRedisAdmin no Ubuntu Server:
curl -s http://getcomposer.org/installer | php
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:
sudo apt install p7zip-full p7zip-rar
Agora podemos seguir:
sudo php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin /usr/local/share/phpredisadmin
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:
Para isso, execute o comando:
sudo apt install p7zip-full p7zip-rar
E assim, você verá:
Agora, vamos executar o comando novamente. No entanto, é bem provável que sejamos informados que o diretório não esteja vazio:
Então, agora vamos precisar remover o diretório e criar de novo:
sudo rm -r /usr/local/share/phpredisadmin
Feito! Agora execute o comando para instalar o phpredisamin novamente:
sudo php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin /usr/local/share/phpredisadmin
Execute o seguinte comando para copiar o modelo de arquivo de configuração phpRedisAdmin:
sudo cp /usr/local/share/phpredisadmin/includes/config.sample.inc.php /usr/local/share/phpredisadmin/includes/config.inc.php
O arquivo /usr/local/share/phpredisadmin/includes/config.inc.php é o arquivo de configuração do phpRedisAdmin! Veja:
sudo nano /usr/local/share/phpredisadmin/includes/config.inc.php
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:
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.
sudo nginx -t
Em seguida, execute o seguinte comando para recarregar o arquivo de configuração Nginx:
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ê!