Red de conocimiento informático - Problemas con los teléfonos móviles - Hay varias formas de crear un servicio Redis

Hay varias formas de crear un servicio Redis

Clúster de replicación maestro-esclavo de Redis

Método de implementación: seleccione un servidor redis como nodo maestro (responsable de las operaciones de escritura) y otro o más servidores como nodos esclavos (responsables de la lectura). operaciones), los datos en el nodo esclavo están completamente sincronizados con el nodo maestro.

Función: ¿Reducir la carga de lectura y escritura de un servidor Redis de un solo nodo y separar la lectura y escritura en diferentes servidores?

Proporcionar disponibilidad de datos

Configuración:?

¿El nodo maestro no se utiliza para ningún cambio?

El archivo de configuración redis.conf en el nodo esclavo debe modificarse de la siguiente manera

#slaveof

cambiado a

salveof 127.0.0.1 6379

Es mejor configurar el servidor como de solo lectura

salve-read-only yes123456

Para lograr un alto disponibilidad, es decir, conmutación por error: debe utilizar keepalive

clúster de fragmentación de redis

Método de implementación: un clúster se compone de varios servidores redis independientes Los servidores son independientes entre sí y están implementados. por el nodo front-end o cliente del clúster Distribuir datos en servidores del clúster

Función: ampliar la capacidad de almacenamiento de datos y reducir la carga en un solo servidor

Pasos

Primero, ¿preparar dos servidores?

Los nombres de servicio y los números de puerto de los dos servidores deben ser diferentes. Los dos archivos dump.rdb de producción deben estar en rutas diferentes. El segundo servidor no puede abrir la configuración del servidor maestro-esclavo. sigue y debe comentarse. Configuración

Abra dos servidores y ejecútelos en segundo plano

La configuración se puede modificar de la siguiente manera cuando se ejecuta en segundo plano.

Cambiar demonio a Sí

¿Habilitar dos clientes?

Luego escriba el código para el clúster fragmentado

public static void main(String[] args) { //poolConfig es el parámetro de configuración del grupo de conexiones

GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); //shards es la lista de todos los servidores de shards en el clúster de shards, JedisShardInfo es la información del servidor de shards

ArrayList shards = new ArrayList<>(); /Encapsular información sobre los dos servidores de fragmentos en el clúster en dos objetos JedisShardInfo

JedisShardInfo shard1 = new JedisShardInfo("192.168.90.add(shards2); //crear un grupo de conexiones jedis con división de datos

ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig, shards); //Obtener una conexión jedis con fragmentación de datos del grupo de conexiones

ShardedJedis jedis = shardedJedisPool.getResource(); 0; i<1000;i++){

jedis.set("string-key-"+i, "1000"+i);

}

jedis .close();

shardedJedisPool.close();

}123456789101112131415161718192021222324252627282930

Ejecutar y ver los resultados

¿Puedes? pruebas 6379 ¿El cliente del puerto tiene una clave para el puerto 6380?

Como puedes ver en la imagen, devuelve 0, lo que significa que no existe