Redis
Sumario
Definición
Puertos
Puertos habituales
redis puerto 6379 redisProd puerto 6780
Comandos
Copia de seguridad
redis-cli save
Info Server
redis-cli info server
Esta toda la info en ram
redis-cli info memory
Info nodos
redis-cli cluster nodes
Añadir o Quitar un nodo del cluster Redis
Como ya sabemos en un cluster de Redis el trabajo de reparte por slots entre los diferentes nodos. Si queremos añadir o quitar un nodo estos slots se deben repartir. Vamos a ver los dos casos, pero antes para poder hacer un reorganización de slots fácilmente vamos a instalar ruby en un versión en concreto.
Instalación paquetes Ruby
- Instalación repositorios SCL
yum install centos-release-scl-rh centos-release-scl
- Deshabilitar estos repositorios por seguridad
poner el Enables a 0 o donde este a 1
- Instalación de Ruby usando estos repos
yum enable-repo=centos-sclo instal rh-ruby23
- Lanzar bash usando el entorno de rh-ruby23
scl enable rh-ruby23 bash
- Una vez dentro del bash proceder a la instalación de redis
gem install revis -v 3.3.3
Ya tenemos nuestro entorno prepardo para trabajar con redis-trib.rb
Añadir un nodo
Primero hemos de meter en nodo en el cluster de redis.
CLUSTER MEET ip_de_conexión(normalmente interna) puerto_de_conexión
Una vez añadido procedemos a la repartición de los SLOTs. Son un total de 16383 slots, en caso de tener 7 nodos simplemente hemos de realizar la división y determinar cual es el número de slots a repartir.
Ejemplo: 16383 / 7 = 2340,42 Cada nodo debe tener asignados 2340 slots.
Resharing nodes / Reorganización de Slots
Una vez añadido el nodo al cluster de Redis, procedemos con la reorganización del slots. Lanzar el comando:
redis-trib.rb reshard 192.168.181.163:6379
Este comando chequea el cluster, comprueba que la máquina este conectada al cluster y nos lanza la siguiente pregunta:
How many slots do you want to move (from 1 to 16384)? 2340 (nuestra respuesta)
Seguidamente nos lanza otra cuestión, en que maquina queremos que se inserten los slots.
What is the receiving node ID? 96a4b95e78bcc57ea0ea696a55387c9508983824
Ahora la penúltima pregunta, el comando quiere saber de donde queremos sacar los slots, de todos los nodos o de uno en concreto?
Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs. Source node #1:all
Bien, comenzará monstrando los cambios que va a realizar y luego nos solicita confirmación para realizarlos.
Cuando termine el nuevo nodo estará trabajando al 100% en el Redis Cluster.
Quitar un nodo
Para quitar un nodo primero hemos de repartir los slots que sobrarán después de eliminarlo.
Es decir que si tenías un cluster con 7 nodos, cada nodo tenía 2340 slots. Ahora como tendremos un cluster de 6 nodos cada uno deberá de tener 2730.
Gracias a la utilidad que utilizamos al añadir un nodo esta operación se hace más fácil, redis-trib.rb.
Una vez reorganizados los slots y habiendo dejado vació de slots el que queremos eliminar podemos proceder a la eliminación de este.
redis-cli cluster del-node 127.0.0.1:6379 e897068ec9b0271debd838dde985ba5cf60335