El cliente adopta el último JEDIS 2.7
1. Dependencias de Maven:
<Spendency> <MoupRoD> Redis.Clients </GroupId> <SartifactId> JEDIS </artifactid> <versión> 2.7.3 </versión> </pendency>
2. Agregar configuración de resorte
<bean name = "genericObjectPoolConfig"> <Property name = "maxWaitMillis" value = "-1" /> <Property name = "maxtotal" valor = "1000" /> <propiedad name = "minidle" value = "8" /> <Property name = "maxidle" value = "100" /> </ bean> <bean id = "jedIsCluster"> <propiedad de propiedad name="addressConfig"><value>classpath:connect-redis.properties</value></property><property name="addressKeyPrefix" value="address" /> <!-- Prefix of key in the property file --><property name="timeout" value="300000" /><property name="maxRedirections" value="6" /><property name="genericObjectPoolConfig" ref = "GenericObjectPoolConfig" /> < /bean>
3. Agregue el archivo de configuración Connect-Redis.Properties
6 nodos están configurados aquí
dirección1 =*:*dirección2 =*:*dirección3 =*:*dirección4 =*:*dirección5 =*:*dirección6 =*:*dirección6 =*:*
4. Agregue la clase Java:
import java.util.hashset; import java.util.properties; import java.util.set; import java.util.regex.pattern; importar org.apache.commons.pool2.impl.genericObjectPoolConfig; import og.springframework.beans.beans.factorybean; import org.springframework.beans.factory.initializingbean; import org.springframework.core.io.resource; import redis.clients.jedis.hostandport; import roedis.clients.jedis.jediscluster; public class jedisclusterfactory implementa factorybeanbeanmus direcciones keyprefix; private jediscluster jediscluster; private entero de tiempo entero; privado entero maxedirections; private genicobjectpoolconfig genicObjectPoolConfig; privado patrón p = patrón. jediscluster;}@overridePublic class <? extiende jediscluster> getObjectType () {return (this.JedIscluster! = null? this.jediscluster.getClass (): jediscluster.class);}@overridepublic boolean issingleton () {return true;} set privado <hostandport> parsehostandport () lanza excepción {try {propiedades prop = newd = neke Properties (); prop.load (this.addressconfig.getInputStream ()); set <hostandport> hasps = new HashSet <hostandport> (); for (Key de objeto: prop.KeySet ()) {if ((((((((((((((((((((((STOlStStSlislislislisisitetutesatitutisitititituritesuruted), p.matcher (val) .matches (); if (! isipport) {Throw New IlegalArGumentException ("IP o puerto es ilegal");} string [] ipandport = val.split (":"); hostandport hap = nuevo hostandport (ipandport [0], intreger.parseint (ipandport [1]); (IllegalArgumentException ex) {throw ex;}catch (Exception ex) {throw new Exception("Parse jedis Configuration file failed", ex);}}@Overridepublic void afterPropertiesSet() throws Exception {Set<HostAndPort> hasps = this.parseHostAndPort();jedisCluster = new JedisCluster(haps, timeout, maxedirections, genericObjectPoolConfig);} public void setaddressConfig (recursos direcciones de concurrido) {this.addressconfig = directionConfig;} public void setTimeOut (int timeout) {this.timeout = timeOut;} public void setMaxredirections (int maxredirections) {this.maxRedirections = maxredirections; setAdDressKeyPrefix (String DirectSKeyPrefix) {this.addressKeyPrefix = directionKeyPrefix;} public void setGenericObjectPoolConfig (genericObjectPoolConfig genericObjectPoolConfig) {this.GenericObjectPoolCigFig = GenericObjectpoolConfig;}}} 5. La configuración se completa en este momento
Cuando está en uso, solo inyectarlo directamente, como se muestra a continuación:
@AUTOWIREDJEDISCLUSTER JEDISCLUSTER;
Resumir
Lo anterior es toda la explicación detallada del clúster de Spring Integration Redis, espero que sea útil para todos. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!