버전에 맞는 Redis 추가.
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.4.10</version>
</dependency>
Local 환경에 window용 맥용 Redis 설치 후 돌아가는지 테스트
power shell : netstat -an | findstr 6379
## Redis
##
#ec2 Host
#spring.redis.host=*.**.*.*
##
spring.redis.host=localhost
spring.redis.port=6379
설정
@RequiredArgsConstructor
@Configuration
@EnableRedisRepositories
public class RedisRepositoryConfig {
@Value("${spring.redis.host}")
private String redisHost;
@Value("${spring.redis.port}")
private int redisPort;
// lettuce
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(redisHost, redisPort);
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
return redisTemplate;
}
}
public interface PersonRedisRepository extends CrudRepository<Person, String> {
}
@Getter
@RedisHash(value="people", timeToLive = 30)
public class Person {
@Id
private String id;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
@RestController
@RequestMapping("/redis/test")
public class PersonRedisController {
@Autowired
private PersonRedisRepository personRedisRepository;
@GetMapping
public Iterable<Person> getPerson(){
return personRedisRepository.findAll();
}
@PostMapping
public Person create(@RequestBody Person person){
System.out.println(person.getName());
System.out.println(person.getAge());
return personRedisRepository.save(person);
}
}
@SpringBootTest
public class RedisRepositoryTest {
@Autowired
private PersonRedisRepository personRedisRepository;
@Test
void test(){
Person person = new Person("Park",20);
System.out.print("save >> ");
System.out.println(personRedisRepository.save(person));
System.out.println("Person Id is : "+ person.getId());
System.out.print("find Id >> ");
System.out.println(personRedisRepository.findById(person.getId()));
System.out.print("get Count >> ");
System.out.println(personRedisRepository.count());
System.out.println("delete >> ");
personRedisRepository.delete(person);
System.out.print("find Id >>");
System.out.println(personRedisRepository.findById(person.getId()));
System.out.print("get Count >>");
System.out.println(personRedisRepository.count());
}
}
Ec2에서 환경구축은 보안포트 오픈과 conf 수정이라고 볼 수 있겠다.
설치폴더/redis.conf 를 수정하면 가능.
비밀번호, 메모리, 접속IP등 기능 수정부분 여기서 설정.
접속 가능한 ip 주소는 bind 옵션으로 설정 가능합니다.
127.0.0.1 ::1 부분을 0.0.0.0으로 변경하면 됩니다.
설치폴더에서
src/redis-server ./redis.conf 로 실행
[Redis] AWS EC2에 redis-server setup 하기
이번 글에서는 AWS EC2에 외부에서 접속 가능한 redis-server를 setup 하는 과정을 정리해보겠습니다. EC2 인스턴스 생성 우선, redis-server를 설치할 EC2 인스턴스를 만듭니다. 저는 jony라는 이름의 ubuntu 18.
wookgu.tistory.com
'JAVA' 카테고리의 다른 글
Spring - DI 의존성 주입 dependency injection (0) | 2022.03.07 |
---|---|
@RequestParam List Map 형식 받기 (Spring 리스트 맵 파라미터 받기 ) (0) | 2022.02.08 |
Active MQ (0) | 2022.01.13 |