Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

Is it possible to find keys which are on different shards using Lettuce using Spring Data Redis

$
0
0

I am using Spring Data Redis in my API. I am trying run the following command through Java:

Set<String> union = redisTemplate.opsForSet().union(ids);

which is causing CROSSSLOT Keys in request don't hash to the same slot err since keys I am searching are on different shards.

My Redis db model is having SET datamodel for keys which I am trying to find.

Is there any way Lettuce can find keys across shards and I can avoid this err. My LettuceConnectionFactory is as it is:

@Bean    public LettuceConnectionFactory redisConnectionFactory() {        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();        redisStandaloneConfiguration.setPort(port);        redisStandaloneConfiguration.setHostName(host);        redisStandaloneConfiguration.setDatabase(database);        if (StringUtils.isNotBlank(password)) redisStandaloneConfiguration.setPassword(password);        LettuceClientConfiguration.LettuceClientConfigurationBuilder builder = LettuceClientConfiguration.builder();        if (useSSl) {            builder.useSsl();        }        LettuceClientConfiguration clientConfiguration = builder                .commandTimeout(Duration.ofSeconds(redisTimeoutMillis))                .clientOptions(ClientOptions                        .builder()                        .disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)                        .build())                .build();        LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(redisStandaloneConfiguration, clientConfiguration);        connectionFactory.afterPropertiesSet();        return connectionFactory;    }    @Bean    public RedisTemplate<String, Object> redisTemplate() {        RedisTemplate<String, Object> template = new RedisTemplate<>();        template.setConnectionFactory(redisConnectionFactory());        return template;    }

Also, is it possible to avoid union operation and use org.springframework.data.repository.CrudRepository findAllByIds(ids) to get the same output?


Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>