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 p>
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
JedisShardInfo shard1 = new JedisShardInfo("192.168.90.add(shards2); //crear un grupo de conexiones jedis con división de datos p>
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