@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;
}
}
public interface CurrencyPriceInfoRedisRepository extends CrudRepository<CurrencyPriceRedis, String> {
List<CurrencyPriceRedis> findByName(String name);
}
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;
간단한 문제였는데 해결하는데 너무 오래걸림..