Red de conocimiento informático - Conocimiento sistemático - Compilación del código fuente e instalación de redis

Compilación del código fuente e instalación de redis

1. Introducción a Redis Cluster

Redis es realmente una tecnología excelente. Es una base de datos en memoria NoSQL de valores clave, escrita en ANSI C, cumple con el protocolo BSD, admite la red, puede estar basada en memoria, puede persistir y proporciona una base de datos basada en registros y valores clave con API en varios idiomas. La característica más importante de Redis es que almacena todos los datos en la memoria, por lo que la velocidad de lectura y escritura es muy buena. Redis se basa en memoria y tiene un alto rendimiento. Puede resolver la concurrencia instantánea de sitios web hasta cierto punto, como compras apresuradas de productos, ventas flash y otras actividades.

Si bien el sitio web está bajo la presión de un alto acceso simultáneo, también necesita consultar datos calificados a partir de datos masivos, lo que requiere una velocidad de respuesta rápida. El front-end envía una solicitud y el back-end interactúa con la base de datos MySQL para realizar operaciones de consulta SQL. La lectura y la escritura son lentas. En este momento, se introduce Redis para almacenar en caché los datos de MySQL en Redis, y el rendimiento mejorará la próxima vez que se lea. Por supuesto, también admite datos persistentes en la memoria del disco duro en forma de instantáneas y registros, de modo que los datos no se pierdan incluso en situaciones anormales como cortes de energía, fallas de la máquina, etc. Redis puede restaurar datos instantáneos desde el disco duro al centro de memoria.

Redis ha lanzado la versión estable 5.0, abandonando el modo de clúster de Ruby y utilizando redis-cli escrito en lenguaje C, lo que reduce en gran medida la complejidad de la construcción del clúster. Redis-Cluster adopta una estructura sin centros, cada nodo almacena datos y el estado completo del clúster, y cada nodo está conectado a todos los demás nodos.

Para garantizar una alta disponibilidad de datos, se agrega el modo maestro-esclavo. Un nodo maestro corresponde a uno o más nodos esclavos. El nodo maestro proporciona acceso a los datos y los nodos esclavos obtienen copias de seguridad de los datos del nodo maestro. Cuando el nodo maestro se cuelga, se seleccionará un nodo esclavo como nodo maestro, lo que garantiza que el clúster no se cuelgue.

Votación en clúster Redis: tolerancia a fallos. El proceso de votación involucra a todos los anfitriones del clúster. Si más de la mitad de los nodos maestros se comunican con el nodo maestro durante más de (cluster-node-timeout), el nodo maestro actual se considera suspendido.

Debe haber al menos un número impar de nodos en el clúster, por lo que hay al menos tres nodos y cada nodo tiene al menos un nodo de respaldo, así que use los siguientes seis nodos (el nodo principal y el nodo de respaldo está determinado por redis-cluster). Se distribuyen seis nodos en una máquina, utilizando un modelo de tres maestros y tres esclavos. En aplicaciones prácticas, es mejor utilizar varias máquinas, como distribuir seis nodos en tres máquinas. Al crear un clúster, redis asigna automáticamente nodos maestros y nodos esclavos a diferentes máquinas.

Segundo modo redis independiente

Descarga el código fuente redis5.0, descomprímelo y compílalo.

wget http://download.redis.io/releases/redis-5.0.0.tar.gz

tar xzf redis-5.0.0.tar.gz

p>

cd redis-5.0.0

Fabricación

El inicio del front-end de Redis debe cambiarse al inicio en segundo plano.

Modificar el archivo redis.conf y cambiar el número de proceso del demonio -> sí

vim redis.conf

Iniciar redis

/www/server/redis/src/redis-server/www/server/redis/redis

Vea si redis se está ejecutando.

ps aux|grep redis

Ahora el modo redis independiente está completo.

En tercer lugar, modo de clúster de Redis:

1. Cree 6 archivos de configuración de Redis.

cd /usr/local/

Mkdir redis_cluster //Crear directorio de clúster

cd redis_cluster

mkdir 7000 7001 7002 7003 7004 7005 // Representa 6 nodos respectivamente.

Corresponde a los puertos 7000 7001 7002 70037004 7005.

2. Copie el archivo de configuración en cada directorio.

CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7000/

CP/www/server/redis/redis . local/redis_cluster/7001/

CP/www/server/redis/redis .conf/usr/local/redis_cluster/7002/

CP/www/server/. redis/redis .conf/usr/local/redis_cluster/7003/

CP/www/server/redis/redis .conf/usr/local/redis_cluster/7004/

<. p>CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7005/

3 Modifique los archivos de configuración respectivamente

vim/usr/local. / redis _ cluster/7000/redis . conf

vim/usr/local/redis _ cluster/7001/redis . / redis .

vim/usr/local/redis _ cluster/7003/redis . p >

vim/usr/local/redis _ cluster/7005/redis

Como sigue

Puerto 7000 #port

Habilitar clúster es. #habilitar el modo de clúster.

El archivo de configuración de cluster-config-file nodes_7000 conf# se genera automáticamente por primera vez.

Tiempo de espera del nodo del clúster 5000 #El tiempo de espera es de 5 segundos.

Agregar solo sí #Activar el registro. Registrará un registro para cada operación de escritura.

Ejecución en segundo plano

Número de modo protegido #modo desprotegido

pidfile /var/run/redis_7000.pid

//Lo siguiente es No es necesario escribir.

#Si se establece una contraseña, el maestro y el esclavo deben configurar los siguientes dos parámetros al mismo tiempo:

Masterauth "jijiji" #Contraseña para conectarse al host

Requisitos Ingrese su propia contraseña

Cluster-config-file, puerto, número correspondiente del archivo pid.

4. Inicie el nodo

cd /www/server/redis/src/

. /redis-server/usr/local/redis_cluster/7000/redis.conf

. /redis-server/usr/local/redis_cluster/7001/redis.conf

. /redis-server/usr/local/redis_cluster/7002/redis.conf

. /redis-server/usr/local/redis_cluster/7003/redis.conf

. /redis-server/usr/local/redis_cluster/7004/redis.conf

. /redis-server/usr/local/redis _ cluster/7005/redis . conf

Ver operaciones de redis

ps aux|grep redis

5. Clúster

/www/server/redis/src/redis-CLI-cluster create 127. 0. 0. 1:7000 127. 0. 0. 1 127. 0. 0. 1: 7002 127. 0.0.1:70000.0.1:7004 127.0.0.1:7005-Cluster Replica 1

El comando utilizado aquí es crear porque queremos crear un nuevo clúster. Esta opción -cluster-replicate1 significa que queremos que cada maestro creado tenga un esclavo.

La entrada es

En este punto, el clúster Reids5 está completo.

6. Verifique el estado del clúster Reids5.

Puede ejecutar redis-CLI-cluster check host:port para verificar la asignación detallada de las ranuras de estado del clúster.

redis-cli - información del clúster 127.0.0.1:7000

7. Detenga el clúster Reids5.

(1) Debido a que Redis puede manejar correctamente la señal SIGTERM, también es posible eliminar directamente -9. Puedes matar varias veces al mismo tiempo y luego activarlas una tras otra.

kill-9 PID PID PID PID

(2).redis5 proporciona herramientas para cerrar el clúster y modificar el archivo:/www/server/redis/utils/create-cluster /crear-clúster.

Cuando el puerto PROT está configurado en 6999 y el nodo está configurado en 6, la herramienta generará entre 7000 y 7005 nodos para su operación.

Después de la modificación, ejecute el siguiente comando para cerrar el clúster:

/www/server/redis/utils/create-cluster/create-cluster stop

Reinicie el clúster:

/www/server/redis/utils/create-cluster/create-cluster start

8. Información de ayuda

Ejecute redis- cli: ayuda del clúster para ver más información de ayuda.

redis-cli - ayuda del clúster

Ji Haibo