RedisTemplate弹簧启动



我要把我的令牌存储在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;
}
}

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;
}

抛出异常java.lang.NoSuchMethodError: 'long redis.clients.jedis.Jedis. 'hset(byte[], byte[], byte[])'

我需要将字符串转换为字节吗?帮助请

你也可以让Spring Boot根据你的。yml或。properties文件自动生成到Redis的连接。您只需要在application.yml中添加以下代码:

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

当我将连接从JedisConnectionFactory更改为LettuceConnectionFactory时,一切都为我工作

@Bean
public LettuceConnectionFactory redisStandAloneConnectionFactory() {
return new LettuceConnectionFactory(new RedisStandaloneConfiguration("127.0.0.1", 6379));
}

最新更新