Construcción de clústeres de Redis e integración de springboot

1. Cree un clúster de Redis

① Principio de grupo

En el clúster de Redis, todos los nodos de Redis están conectados entre sí y el protocolo binario se utiliza dentro del nodo para optimizar la velocidad de transmisión y el ancho de banda. Cuando un nodo cuelga, se considera que el nodo ha fallado solo cuando más de la mitad de los nodos del clúster detectan que el nodo ha fallado. Cualquier nodo en el clúster de Redis puede conectarse directamente al cliente JAVA. Las reglas de distribución de datos en el clúster de Redis utilizan ranuras hash, que son ranuras hash. Hay 16384 ranuras hash integradas en el clúster de Redis. Cuando hay datos que deben almacenarse, Redis primero utilizará el algoritmo crc16 para calcular la clave. y lleve el resto del resultado del cálculo a 16384. De esta manera, cada clave corresponderá a una ranura hash con un valor entre 0 y 16384. Redis almacenará el dato en el nodo de Redis correspondiente en función de este resto. ajuste cada instancia de Redis en función de su rendimiento. El rango de distribución de ranuras hash en cada instancia de Redis.

② Planificación de clústeres
Esta prueba se creó utilizando un método de clúster pseudodistribuido y se utilizaron diferentes puertos para representar diferentes servidores redis.
Nodo maestro: 192.168.216.133:8001, 192.168.216.133:8002, 192.168.216.133:8003
Nodo esclavo: 192.168.216.133:8004, 192.168.216.133:8005, 192 .168.216 .133:8006

③ Configuración del clúster
La herramienta de administración del clúster redis redis-trib.rb depende del entorno Ruby. Primero debe instalar el entorno Ruby, por lo que debe instalarlo.
Instale RVM. RVM es una herramienta de línea de comandos que puede proporcionar una administración y conmutación convenientes de entornos Ruby de múltiples versiones. Para conocer el método de instalación, consulte mi otro blog: https://editor.csdn.net/md/?articleId =128752991
Después de instalar el entorno RVM, necesita instalar las dependencias de Redis

gem install redis

Prepare el entorno de redis
y prepare el paquete de redis.Esta prueba utiliza la versión redis-3.2.1.tar.gz de redis;

cd ~
# mkdir redis-cluster
将redis-3.2.1.tar.gz复制到redis-cluster目录
# cd redis-cluster
# tar -zxvf redis-3.2.1.tar.gz
# cd redis-3.2.1
# make MALLOC=libc
# make install

Después de una instalación exitosa, copie el archivo redis-trib.rb en el directorio redis-3.2.1/src al directorio redis-cluster;

当前目录在redis-cluster
cp ./redis-3.2.1/src/redis-trib.rb ./

Cree seis directorios 8001 ~ 8006 en el directorio redis-cluster, copie el archivo redis.conf en el directorio redis-3.2.1 a estos seis directorios y luego modifique redis.conf en cada directorio. Las modificaciones específicas son las siguientes:

port 8001
#bind 127.0.0.1
cluster-enabled yes
cluster-config-file nodes-8001.conf
protected-mode no
damonized yes
requirepass 123@456
masterauth 123@456

Modifique la configuración de redis.conf de 8002 ~ 8006 de acuerdo con este método de modificación. Una vez completadas todas las modificaciones, debe iniciar la instancia de redis.

redis-server ./8001/redis.conf
redis-server ./8002/redis.conf
redis-server ./8003/redis.conf
redis-server ./8004/redis.conf
redis-server ./8005/redis.conf
redis-server ./8006/redis.conf

Después de que el inicio sea exitoso, use el comando para verificar si el inicio fue exitoso y si la instancia existe;

ps -ef|grep redis

Insertar descripción de la imagen aquíDespués de un inicio exitoso, debe modificar el archivo redis-trib.rb. Debido a que se establece una contraseña para iniciar sesión y el siguiente comando en redis-trib.rb no establece una contraseña, no puede iniciar sesión en cada instancia de redis. En este momento, debe abrir redis a través del editor vim.archivo -trib.rb, busque la siguiente línea y modifíquela.
Insertar descripción de la imagen aquíLo modifiqué aquí y agregué una contraseña. La contraseña es 123@456.
Lo anterior es la preparación para construir un clúster de Redis. A continuación, comenzaré a crear el clúster de Redis.

④ Crear un clúster

./redis-trib.rb create --replicas 1 192.168.216.133:8001 192.168.216.133:8002 192.168.216.133:8003 192.168.216.133:8004 192.168.216.133:8005 192.168.216.133:8006

Las réplicas representan la cantidad de esclavos en cada nodo maestro. Durante el proceso de creación del cluster, se asignarán las máquinas maestra y esclava. A cada cluster se le asignará una ID única y una ranura durante el proceso de creación.
Una vez que el clúster se haya creado correctamente, ingrese al directorio redis-3.2.1 e inicie sesión en cualquier instancia de redis, el comando es el siguiente:

redis-cli -p 8001 -a 123@456 -c

-p: indica el puerto del clúster en el que se iniciará sesión
-a: indica la contraseña del clúster en el que se iniciará sesión
-c: indica que se iniciará sesión como un clúster

查询集群状态信息
# cluster info
查询集群节点信息(集群信息中,可以看到每个节点的id,该节点是slave还是master,如果是slave,那么它的master的id是什么,如果master那么每个master的slot范围是多少,等等!!!)
# cluster nodes

⑤ Agregue un nodo maestro.
Primero debe agregar un nodo redis.

redis-server ./8007/redis.conf

Después de una ejecución exitosa, agregue el nodo al clúster mediante el siguiente comando

./redis-trib.rb add-node 192.168.216.133:8007 192.168.216.133:8001

192.168.216.133:8007 Este parámetro indica la dirección de la instancia del nodo agregado;
192.168.216.133:8001 es la instancia en el clúster.

Compruebe si la instancia de Redis se agrega al clúster

# cluster nodes

Después de que la adición sea exitosa, es necesario reasignar la ranura. Ejecute el siguiente comando:

./redis-trib.rb reshard 192.168.216.133:8001

El segundo parámetro representa cualquier instancia del clúster.
Durante la ejecución del comando, hay tres configuraciones principales que deben configurarse manualmente: la primera configuración es cuántas ranuras asignar a la nueva instancia.
La segunda configuración es asignar las ranuras a quién, ingrese el ID de la instancia de redis que recibe estas ranuras.
La tercera configuración es de qué instancia son estas ranuras.
Una vez que la ranura se haya asignado correctamente, verifique la información del nodo y verá que la nueva instancia también tiene una ranura;

⑥ Agregar nodo esclavo

./redis-trib.rb add-node --slave --master-id a1e170d576142536755ff6c178d7ef6ff77745e4 192.168.216.133:8008 192.168.216.133:8001

⑦ Eliminar nodo

./redis-trib.rb del-node 192.168.216.133:8001 f5ba09370513b59bfdd2939aa59f25e62847a6f9

2. Spring Boot integra Redis

① Crear proyecto web Spring Boot

 <dependency>
  	<groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>
 <dependency>
	   <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-web</artifactId>
	</dependency>

② Configurar la información del clúster
Insertar descripción de la imagen aquí

③Crear controlador
Insertar descripción de la imagen aquí

④ Prueba
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_38717886/article/details/128753728
Recomendado
Clasificación