Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Collo -02 , kr

85 views

Published on

Redis 데이타를 MySQL로 실시간 마이그레이션 하는 샘플입니다.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Collo -02 , kr

  1. 1. Collo / Redis to MySQL https://github.com/blackwitch/Collo
  2. 2. 샘플 프로젝트 실행하기 • 샘플 다운로드 (step 1 참조) • MySQL (혹은 MariaDB)에 샘플 데이타베이스 와 테이블 세팅하기 • Redis에 샘플 데이터 삽입하기 • Repository 설정 변경하기 • 테스트 실행하기
  3. 3. 0 – 시작 전 준비사항 • Node.JS(https://nodejs.org)를 설치하세요. • Collo를 설치하세요.(https://github.com/blackwitc h/Collo) • Redis와 MySQL을 테스트 할 시스템에 설치하세요. • 만약 이미 테스트에 사용할 수 있는 Redis와 MySQL이 있다면 별도 인스톨은 필요 없습니다.
  4. 4. 1 – 샘플 다운로드 • https://github.com/blackwitch/Collo/blob /master/samples/01-redis-mysql.zip • 위 링크에서 샘플을 다운로드 하세요. (Collo를 github에서 다운로드 하셨다면 이미 포함되어 있습니다.)
  5. 5. 2 – 데이타베이스와 테이블 설정 • MySQL에서 “collo-mysql-sample-db.sql” 를 실행하세요. • 다운로드한 샘플에 포함되어 있습니다.
  6. 6. 3 – Redis에 샘플 데이터 입력하기 • Redis에서 아래 쿼리를 실행하세요. rpush test_key ‘{“company”:”company_A”, “sales”:1000}’ rpush test_key ‘{“company”:”company_B”, “sales”:2000}’ rpush test_key ‘{“company”:”company_C”, “sales”:3000}’ rpush test_key ‘{“company”:”company_D”, “sales”:4000}’ rpush test_key ‘{“company”:”company_E”, “sales”:5000}’ (*복사하지 말고 직접 입력하세요.)
  7. 7. 4 – 저장소 설정하기 “repos.json” 파일 내용 { "redis_repo" : { // redis 설정 예 "name" : "redis", "type" : "redis", "ip": "127.0.0.1", "port": 6379 }, "mysql_repo" : { // mysql 혹은 mariadb 설정 예 "name" : "db4write", "type" : "mysql", "config" : { "host" :"127.0.0.1", "port" : 3306, "user" : "tester", "password" : "test_pw", "database":"dbTest1", "multipleStatements": true } } } (* 설치된 Redis와 MySQL 설정에 알맞게 ip와 port를 수정하세요.)
  8. 8. 5 – 작업 설정하기 “jobs.json” 파일 내용 { "mysql_sample" : { "schedule" : "*/10 * * * * *", // 작업의 스케쥴 설정 예. 매 초 마다 "from" : "redis_repo", // 저장소에 설정된 redis 저장소 이름 "get_query" : "lpop test_key", "to": [" mysql_repo”], // 저장소에 설정된 mysql 저장소 이름 "set_query": ["insert into tb4write (company, sales) values (?, ?)", "company=?, sales=?"], "set_query_param": ["@company as string, @sales as int", "@company as string, @sales as int"] } } (* 이 예제는 redis에서 읽은 데이터를 mysql에 삽입하는 예입니다.)
  9. 9. 6 - 실행하기 • Collo가 설치된 폴더를 찾으세요. 아직 다운로드 하지 않았다면 https://github.com/blackw itch/Collo 에서 다운 받으세요. • 다운로드된 샘플에서 “repos.json”과 “jobs.json” 파일을 Collo의 src 폴더에 복사하세요. • Step 3을 참고하여 Redis에 샘플 데이터를 입력하세요. • Console에서 Collo의 src 폴더로 가 “node collo”를 실행하세요. Collo는 10초에 하나씩 Redis에 입력된 데이터를 MySQL로 이동시킬 겁니다. • 실행된 collo를 강제 종료 후 재시작하면 남은 데이터를 계속 MySQL로 이동합니다. • 그럼, MySQL로 접속하여 “dbtest1.tb4write” 테이블을 조회하면 입력된 결과를 볼 수 있습 니다. • 끝!!
  10. 10. 다음은? 다음에는 http post에서 읽은 데이터를 mysql에 넣는 샘플을 만들어 보겠습니다.

×