redistemplate example data cache java spring redis jedis

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 ShardedJedis con RedisTemplate ?


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).

Ver: Trabajar con objetos a través de RedisTemplate


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"/> -->