Desempenho excepcional – O Redis pode realizar até 110000 leituras por segundo e 81000 escritas por segundo.
Tipos de dados diversos – O Redis suporta operações com Strings, Listas, Hashes, Conjuntos e Conjuntos Ordenados, incluindo suporte a dados binários.
Operações atômicas – Todas as operações do Redis são atômicas, e ele também suporta a execução atômica de várias operações combinadas.
Recurrsos abundantes – O Redis também oferece suporte a publicação/assinatura, notificações, expiração de chaves e outras funcionalidades.
Instalação do Redis (versão 4.0)
Como o Redis é escrito em C++, após a extração dos arquivos, é necessário compilá-lo e instalá-lo. Potranto, o primeiro passo é instalar o compilador C++ gcc-c++ no sistema.
Instalação do compilador
1. Instalação online (com acesso à internet)
yum install -y gcc-c++
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
2. Instalação offline (sem acesso à internet)
É possível baixar os seguintes pacotes RPM de http://vault.centos.org/6.5/os/x86_64/Packages/:
ppl-0.10.2-11.el6.x86_64.rpm
ppl-devel-0.10.2-11.el6.x86_64.rpm
gmp-devel-4.3.1-7.el6_2.2.x86_64.rpm
cloog-ppl-devel-0.15.7-1.2.el6.x86_64.rpm
cpp-4.4.7-4.el6.x86_64.rpm
glibc-devel-2.12-1.132.el6.x86_64.rpm
glibc-headers-2.12-1.132.el6.x86_64.rpm
libstdc++-4.4.7-4.el6.x86_64.rpm
libstdc++-devel-4.4.7-4.el6.x86_64.rpm
gcc-4.4.7-4.el6.x86_64.rpm
gcc-c++-4.4.7-4.el6.x86_64.rpm
kernel-headers-2.6.32-431.el6.x86_64.rpm
mpfr-2.4.1-6.el6.x86_64.rpm
Instale cada pacote individualmente usando o comando:
rpm –ivh nome_do_pacote.rpm
Por fim, prepare o arquivo tar do Redis (caminho: redis-4.0.6.tar.gz):
redis-4.0.6.tar.gz
Extração do arquivo tar
tar -zxvf redis-4.0.6.tar.gz
Compilação e instalação
Entre no diretório extraído e execute os comandos de compilação e instalação (o seguinte comando executa ambas as operações):
make install PREFIX=/usr/local/redis
O caminho /usr/local/redis é o diretório de instalação do Redis, mas você pode usar qualquer nome de diretório desejado.
Métodos de inicialização do Redis (três opções)
1. Inicialização em primeiro plano
Navegue até o diretório bin da instalação do Redis e execute o arquivo redis-server:
./redis-server
A execução deste arquivo exibirá uma interface gráfica com informações como versão do Redis, bits do software, porta de escuta (6379), PID, etc., confirmando que a instalação e inicialização foram bem-sucedidas.
[root@iZwz991stxdwj560bfmadtZ src]# ./redis-server
18685:C 13 Dec 12:56:12.507 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18685:C 13 Dec 12:56:12.507 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=18685, just started
18685:C 13 Dec 12:56:12.507 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 4.0.6 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 18685
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
18685:M 13 Dec 12:56:12.508 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
18685:M 13 Dec 12:56:12.508 # Server initialized
18685:M 13 Dec 12:56:12.508 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
18685:M 13 Dec 12:56:12.508 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
18685:M 13 Dec 12:56:12.508 * Ready to accept connections
No entanto, este método de inicialização exige que a janela permaneça aberta, o que não é prático para outras operações. Pressione Ctrl + C para fechar a janela.
2. Inicialização em segundo plano
Primeiro passo: Modificar o arquivo redis.conf
Altere a configuração:
daemonize no
Para:
daemonize yes
Segundo passo: Iniciar especificando o arquivo redis.conf
Use o comando redis-server especificando o caminho do arquivo de configuração:
./redis-server /usr/local/redis-4.0.6/redis.conf
Para verificar se o Redis está em execução:
ps -aux|grep redis
3. Configuração para inicialização automática
1. Crie um diretório redis em /etc
mkdir redis
2. Copie o arquivo redis.conf para o novo diretório
cp /usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf
3. Copie o script de inicialização do Redis
cp /usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd
4. Edite o arquivo redisd
Adicione as seguintes linhas no início do arquivo e salve:
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
Essas linhas indicam que o serviço Redis deve ser iniciado ou parado nos níveis de execução 2, 3, 4 e 5, com prioridade 90 para inicialização e 10 para desligamento.
5. Configure a inicialização automática do Redis
Navegue até o diretório /etc/init.d e execute o comando:
chkconfig redisd on
Agora você pode iniciar e parar o Redis usando comandos de serviço:
Iniciar: service redisd start
Parar: service redisd stop
Resolução de problemas
Se você encontrar o erro:
/var/run/redis_6379.pid exists, process is already running or crashed
Isso geralmente ocorre após desligamentos forçados ou falta de energia. Existem duas soluções:
1. Inicie usando o arquivo de configuração: redis-server /etc/redis/6379.conf
2. Execute um reinicialização suave: shutdown -r now