java - example - spring boot redis connection factory
Usando ShardedJedis con RedisTemplate (2)
A continuación se muestra la documentación de Jedis directamente copiada de la página de jedis github:
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
JedisShardInfo si = new JedisShardInfo("localhost", 6379);
si.setPassword("foobared");
shards.add(si);
si = new JedisShardInfo("localhost", 6380);
si.setPassword("foobared");
shards.add(si);
Entonces, hay dos formas de usar ShardedJedis . Conexiones directas o utilizando ShardedJedisPool . Para un funcionamiento fiable, este último debe utilizarse en un entorno de multiproceso.
2.a) Conexión directa:
ShardedJedis jedis = new ShardedJedis(shards);
jedis.set("a", "foo");
jedis.disconnect;
2.b) Conexión agrupada:
ShardedJedisPool pool = new ShardedJedisPool(new Config(), shards);
ShardedJedis jedis = pool.getResource();
jedis.set("a", "foo");
.... // do your work here
pool.returnResource(jedis);
.... // a few moments later
ShardedJedis jedis2 = pool.getResource();
jedis.set("z", "bar");
pool.returnResource(jedis);
pool.destroy();
El ejemplo de arriba muestra cómo usar ShardedJedis .
En mi configuración actual, estoy usando RedisTemplate y JedisConnectionFactory .
Mi pregunta es
¿Cómo uso
ShardedJedisconRedisTemplate?
Creo que no apoya directamente tu caso. RedisTemplate ofrece una abstracción de alto nivel para las interacciones de Redis. Mientras que RedisConnection ofrece métodos de bajo nivel que aceptan y devuelven valores binarios (matrices de bytes).
Creo que puedes configurar jedis en spring.xml con el siguiente código: y, por supuesto, debes crear un JedisClient.java como interfaz
<!-- redis cluster -->
<!-- <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg>
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis01.real.cluster.client.host}"/>
<constructor-arg name="port" value="${redis01.real.cluster.client.port}"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis02.real.cluster.client.host}"/>
<constructor-arg name="port" value="${redis02.real.cluster.client.port}"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis03.real.cluster.client.host}"/>
<constructor-arg name="port" value="${redis03.real.cluster.client.port}"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis04.real.cluster.client.host}"/>
<constructor-arg name="port" value="${redis04.real.cluster.client.port}"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis05.real.cluster.client.host}"/>
<constructor-arg name="port" value="${redis05.real.cluster.client.port}"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis06.real.cluster.client.host}"/>
<constructor-arg name="port" value="${redis06.real.cluster.client.port}"/>
</bean>
</set>
</constructor-arg>
</bean>
<bean id="jedisClientCluster" class="com.dingli.rest.component.impl.JedisClientCluster"/> -->