Подтвердить что ты не робот

Использование ShardedJedis с RedisTemplate

Ниже приведена документация Jedis, скопированная непосредственно с страницы 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);

Тогда есть два способа использования ShardedJedis. Прямые подключения или с помощью ShardedJedisPool. Для надежной работы последняя должна использоваться в многопоточной среде.

2.a) Прямое соединение:

ShardedJedis jedis = new ShardedJedis(shards);
jedis.set("a", "foo");
jedis.disconnect;

2.b) Объединенное соединение:

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();

В приведенном выше примере показано, как использовать ShardedJedis.

В моей текущей настройке я использую RedisTemplate и JedisConnectionFactory.

Мой вопрос

Как использовать ShardedJedis с RedisTemplate?

4b9b3361

Ответ 1

Я думаю, что это не поддерживает ваше дело. RedisTemplate предлагает абстракцию высокого уровня для взаимодействий Redis. Хотя RedisConnection предлагает методы низкого уровня, которые принимают и возвращают двоичные значения (байтовые массивы).

Смотрите: Работа с объектами через RedisTemplate

Ответ 2

Я думаю, что u может настроить jedis в spring.xml с нижеследующим кодом: и, конечно же, вы должны создать JedisClient.java в качестве интерфейса

                         

                         

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