Home > Blockchain >  RedisTemplate Spring boot
RedisTemplate Spring boot

Time:12-15

I am going to store my token in redis

RedisConfig

@Configuration
@EnableCaching
public class RedisConfig {

    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName("127.0.0.1");
        redisStandaloneConfiguration.setPort(6379);


        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(redisStandaloneConfiguration);
        return jedisConnectionFactory;
    }

    @Bean
    public RedisTemplate<String, String> redisTemplate() {
        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(jedisConnectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new JdkSerializationRedisSerializer());
        redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
        redisTemplate.setEnableTransactionSupport(true);
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
}

Service

final var st =AuthenticationSuccessDto
                .builder()
                .accessToken(jwtUtils.generateAccessToken(user))
                .refreshToken(jwtUtils.generateRefreshToken(user))
                .tokenType("Bearer")
                .user(user)
                .expiresIn(TimeUnit.SECONDS.toSeconds(60)).build();

        try {
            redisTemplate.opsForHash().put(KEY,"1",st.getAccessToken());
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception();
        }

        return st;
    }

throws an exception java.lang.NoSuchMethodError: 'long redis.clients.jedis.Jedis.hset(byte[], byte[], byte[])'

I need to convert string to bytes? help plz

CodePudding user response:

You can also have Spring Boot automatically generate the connection to Redis based on your .yml or a .properties file. You just need to add the following to your application.yml:

spring:
  redis:
    host: localhost
    port : '6379'

CodePudding user response:

Everything worked for me when I changed the connection to the redis from JedisConnectionFactory to LettuceConnectionFactory

  • Related