'Programming/DB'에 해당되는 글 1건

  1. 2014.03.11 Redis 시작하기
posted by Full-stack Developer 2014. 3. 11. 15:41


  1. 소개
    • 오픈소스
    • ANSI C로 구현
    • key-value sotre구조
    • 제공 자료형은 5가지
      • strings
      • hashes
      • lists
      • sets
      • sorted sets
    • memory dataset에서 동작
    • 대부분의 프로그래밍 언어에서 사용가능
    • Linux에서 개발 추천

  2. 설치방법
    • 리눅스

      1. Redis 다운로드 및 구성
        • ​​버전확인 : http://www.redis.io/download 
          $ wget http://download.redis.io/releases/redis-2.8.7.tar.gz
          $ tar xzf redis-2.8.7.tar.gz
          $ cd redis-2.8.7
          $ make
      2. 서버 실행
        $ src/redis-server
      3. 클라이언트 실행
        $ src/redis-cli
        redis> set foo bar
        OK
        redis> get foo
        "bar"
    • windows

      1. Redis 다운로드
        • https://github.com/rgl/redis/downloads

      2. 설치
        • redis-x.x.x-setup-xx-bit.exe 실행
      3. 서버 실행
        1. 설치 경로 이동 ex)C:\Program Files\Redis
        2. redis-server.exe 실행
      4. 클라이언트 실행
        1. 설치 경로 이동 ex)C:\Program Files\Redis
        2. redis-cli.exe 실행
  3. 데이터 타입
    • String

      • 가장 기본적인 Redis data type
      • binary 저장소
      • 다향한 종류의 데이터를 담을 수 있음
      • 최대길이 512Mb
      • 사용가능 기능
        • 자동 카운터 기능
        • string append 기능
        • string의 구간(start/end index)을 이용한 get/set기능
        • bit단위로 string set/get기능
      • Strings에서 사용가능한 명령어 : http://www.redis.io/commands/#string
    • Lists

      • 간단한 string lists
      • 삽입명령 순으로 정렬
        • lists의 head나, tail로 삽입가능
      • 최대 길이는  232 - 1(4,294,967,295)개
      • Lists에서 사용가능한 명령어 : http://www.redis.io/commands#list
    • Sets

      • 정렬이 않되어있는 String 집합
      • 추가, 제거, 존재여부 테스트
      • 중복 제거
      • 최대 길이는  232 - 1(4,294,967,295)개
      • Sets에서 사용가능한 명령어 : http://www.redis.io/commands#set
    • Hashes

      • String fields(keys)와 String values의 연속
      • fields가 100개이하일때, 매우 작은 저장공간을 사용
      • 최대 길이는  232 - 1(4,294,967,295)개
      • Hashes에서 사용가능한 명령어 : http://www.redis.io/commands#hash
    • Sorted sets

      • Sets와 유사. 차이점은 score를 이용하여 정렬함
      • score
        • 데이터를 가져올때 사용됨
        • 적은수에서 큰수로 scoring됨
        • unique함
      • 삽입, 제거, 갱신을 매우빠르게 수행
      • score범위를 지정하여 매우빠르게 데이터를 가져올수 있음
      • soreted sets의 중간에있는 데이터도 빠르게 접근함
      • Sorted sets에서 사용가능한 명령어 : http://www.redis.io/commands#sorted_set
  4. 명령어
    • 명령어 사용 예시
      redis> EXISTS mykey//EXISTS : 해당 key가 존재하는지 판별
      (integer) 0 // 0이면 존재하지 않음. 1이면 존재함
      redis> APPEND mykey "Hello"
      (integer) 5 //append 명령어 수행 후 mykey의 길이
      redis> APPEND mykey " World"
      (integer) 11
      redis> GET mykey //해당 key의 value를 가져옴
      "Hello World"
      redis> 
  5. springframework에 redis 개발환경 구축
    • redis clients URL : http://www.redis.io/clients
    • JAVA에서 사용가능한 library종류
      • Jedis(대표적)
      • Redisson(대표적)
      • JRedis
      • JDBC-Redis
      • RJC
      • redis-protocol
      • aredis
      • lettuce
    • 사용방법 및 예제(Jedis일 경우)
      1. maven 사용하는 경우
        • maven에 dependency 추가
          <dependency>
              <groupId>redis.clients</groupId>
              <artifactId>jedis</artifactId>
              <version>2.2.1</version>
              <type>jar</type>
              <scope>compile</scope>
          </dependency>
      2. jar파일로 직접 연동할 경우
        • 다운로드 URL : https://github.com/xetorthio/jedis/downloads