Redis 조회 문제점

BB·2023년 1월 7일
0
  • Redis Configuration 파일
@Configuration
@EnableRedisRepositories(basePackages = "com.cryptocurrency.investment.repository.redis")
public class RedisConfig {
    @Value("${spring.data.redis.host}")
    private String redisHost;

    @Value("${spring.data.redis.port}")
    private Integer redisPort;

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        return new LettuceConnectionFactory(redisHost,redisPort);
    }

    @Bean
    public RedisTemplate<String, CurrencyPriceRedis> redisTemplate() {
        RedisTemplate<String, CurrencyPriceRedis> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory());
        return redisTemplate;
    }
}
  • Redis Repository
public interface CurrencyPriceInfoRedisRepository extends CrudRepository<CurrencyPriceRedis, String> {
    List<CurrencyPriceRedis> findByName(String name);
}
  • 다음 코드 작동 X
Set<String> keys = redisTemplate.keys("*"); // 아무 값도 리턴 X
for (String key : keys) {
    System.out.println("key = " + key);
    System.out.println("redisRepository.findById(key) = " + redisRepository.findById(key).get().getId());
}

List<PriceInfoRedis> btcs = redisRepository.findByName("BTC");
for (PriceInfoRedis btc : btcs) {
    System.out.println("id : " + btc.getId() +" Name : "+ btc.getName() + " Price : " + btc.getPrice() );
}

해결 방법

// 조회 할 변수에 @Indexed 를 붙인다.

@Indexed
private String name;

간단한 문제였는데 해결하는데 너무 오래걸림..

profile
공부

0개의 댓글