Key가 100만 단위로 늘어날 경우 성능에 미치는 영향을 테스트 했다. 테스트 환경은 다음과 같다. REDIS 서버 REDIS 클라이언트 언어 100만개와 1000만개의 데이터로 테스트를 진행했다. Key를 입력하는 데도 시간이 꽤 걸리기 때문에, 파일을 만든다음 벌크(bulk)로 한번에 입력했다. File.open(1million.txt, w) do...
REDIS 소개, 설치, 데이터 타입 테스트REDIS는 BSD 라이센스 기반의 Key-value 캐쉬 & Store 소프트웨어다. String, hash, lists, sets, sorted set, bitmap, hyperloglogs 등 다양한 데이터 구조를 저장할 수 있기 때문에, data structure server라고 부르기도 한다. 메모리에 ...
REDIS 데이터 모델링 예제들메신저 서비스를 개발하고 있다. 메시지를 보냈는데, 수신 대상이 연결하지 않은 상태일 수도 있다. 이 경우에 메시지는 메시지 함(Message Box)에 저장하기로 했다. 유저가 연결하면, 메시지 함에서 메시지를 읽어온다. 메시지 함의 크기는 메시지에 대한 정책에 따라 달라질 수 있다. 나는 "모든 메시지는 중요하다."는 관...
SETBIT key offset valueSETBIT key offset value 2.2.0 부터 지원 시간 복잡도 Key에 bit를 설정한다. offset을 이용해서, bit를 설정할 위치를 설정할 수 있다. SETBIT로 특정 위치의 비트값을 0혹은 1로 설정할 수 있다. 만약 key가 없다면, 새로운 key를 만든 다음 비트를 설정한다. offs...
SET key value 1.0.0 버전 부터 지원 시간 복잡도 Key에 Value를 저장한다. 만약 key가 이미 있다면, value의 데이터 타입에 관계없이 덮어쓴다.2.6.12 버전 부터 아래의 옵션을 지원한다. Ex seconds Px milliseconds NX XX 2.6.12 이전에는 SETNX, SETEX, PSETEX등이 있었는데,...
SADD key member 1.0.0 부터 지원 시간 복잡도 Key에 멤버를 추가한다. 멤버에 같은 값이 이미 있다면, 저장하지 않는다. 만약 키가 없다면, 새로운 set을 만들고 멤버를 추가한다. Key가 set형 데이터가 아닐 경우에는 에러를 반환한다. 이미 존재하는 모든 원소의 갯수가 아닌, set에 추가된 원소의 갯수를 반환한다.> SADD m...
RPUSH key value 1.0.0 버전 이상 시간 복잡도 이름이 key인 리스트 자료구조의 마지막(오른쪽)에 값을 밀어(Right Push) 넣는다. Key가 없다면, 비어있는 리스트를 만든다음에 값을 밀어 넣는다. 이 명령을 이용하면, 한 번에 두 개 이상의 값을 넣을 수 있다.Push 동작 후 리스트의 길이를 반환한다. > RPUSH mylist...
LTRIM key start stop 1.0.0 부터 지원 시간 복잡도 Trim은 start에서 stop범위의 원소를 제외한 모든 원소를 list에서 삭제한다. start와 stop은 0부터 시작한다. 즉 0은 리스트의 첫번째 원소, 1은 두번째 원소다. 예를 들어 LTRIM foobar 0 2를 실행하면, foobar의 0, 1, 2 세개의 원소를 제거...
LPUSH key value 1.0.0 부터 지원 시간복잡도 key에 value를 밀어 넣는다. 밀어 넣는 방향은 왼쪽에서 오른쪽이다. 키가 없다면, 빈 목록을 가진 키를 만들고 값을 밀어 넣는다. 키가 리스트 타입이 아니라면 에러를 반환한다. 값을 여러 개 나열하는 것으로 하나 이상의 값을 입력할 수 있다. 값은 0번 인덱스에 들어가며, 기존에 있던...
661 POSTS HERE
REDIS 성능 테스트
Key가 100만 단위로 늘어날 경우 성능에 미치는 영향을 테스트 했다. 테스트 환경은 다음과 같다. REDIS 서버 REDIS 클라이언트 언어 100만개와 1000만개의 데이터로 테스트를 진행했다. Key를 입력하는 데도 시간이 꽤 걸리기 때문에, 파일을 만든다음 벌크(bulk)로 한번에 입력했다. File.open(1million.txt, w) do...
REDIS 소개, 설치, 데이터 타입 테스트
REDIS 소개, 설치, 데이터 타입 테스트REDIS는 BSD 라이센스 기반의 Key-value 캐쉬 & Store 소프트웨어다. String, hash, lists, sets, sorted set, bitmap, hyperloglogs 등 다양한 데이터 구조를 저장할 수 있기 때문에, data structure server라고 부르기도 한다. 메모리에 ...
EXISTS key
EXISTS key 1.0.0 부터지원 시간 복잡도 키가 있으면 1 키가 없으면 0redis> SET key1 "Hello"okredis> EXISTS key11redis> EXISTS key20...
REDIS 데이터 모델링 예제들
REDIS 데이터 모델링 예제들메신저 서비스를 개발하고 있다. 메시지를 보냈는데, 수신 대상이 연결하지 않은 상태일 수도 있다. 이 경우에 메시지는 메시지 함(Message Box)에 저장하기로 했다. 유저가 연결하면, 메시지 함에서 메시지를 읽어온다. 메시지 함의 크기는 메시지에 대한 정책에 따라 달라질 수 있다. 나는 "모든 메시지는 중요하다."는 관...
SETBIT key offset value
SETBIT key offset valueSETBIT key offset value 2.2.0 부터 지원 시간 복잡도 Key에 bit를 설정한다. offset을 이용해서, bit를 설정할 위치를 설정할 수 있다. SETBIT로 특정 위치의 비트값을 0혹은 1로 설정할 수 있다. 만약 key가 없다면, 새로운 key를 만든 다음 비트를 설정한다. offs...
SET key value
SET key value 1.0.0 버전 부터 지원 시간 복잡도 Key에 Value를 저장한다. 만약 key가 이미 있다면, value의 데이터 타입에 관계없이 덮어쓴다.2.6.12 버전 부터 아래의 옵션을 지원한다. Ex seconds Px milliseconds NX XX 2.6.12 이전에는 SETNX, SETEX, PSETEX등이 있었는데,...
SADD key member [member ...]
SADD key member 1.0.0 부터 지원 시간 복잡도 Key에 멤버를 추가한다. 멤버에 같은 값이 이미 있다면, 저장하지 않는다. 만약 키가 없다면, 새로운 set을 만들고 멤버를 추가한다. Key가 set형 데이터가 아닐 경우에는 에러를 반환한다. 이미 존재하는 모든 원소의 갯수가 아닌, set에 추가된 원소의 갯수를 반환한다.> SADD m...
RPUSH key value
RPUSH key value 1.0.0 버전 이상 시간 복잡도 이름이 key인 리스트 자료구조의 마지막(오른쪽)에 값을 밀어(Right Push) 넣는다. Key가 없다면, 비어있는 리스트를 만든다음에 값을 밀어 넣는다. 이 명령을 이용하면, 한 번에 두 개 이상의 값을 넣을 수 있다.Push 동작 후 리스트의 길이를 반환한다. > RPUSH mylist...
LTRIM key start stop
LTRIM key start stop 1.0.0 부터 지원 시간 복잡도 Trim은 start에서 stop범위의 원소를 제외한 모든 원소를 list에서 삭제한다. start와 stop은 0부터 시작한다. 즉 0은 리스트의 첫번째 원소, 1은 두번째 원소다. 예를 들어 LTRIM foobar 0 2를 실행하면, foobar의 0, 1, 2 세개의 원소를 제거...
LPUSH key value [value ...]
LPUSH key value 1.0.0 부터 지원 시간복잡도 key에 value를 밀어 넣는다. 밀어 넣는 방향은 왼쪽에서 오른쪽이다. 키가 없다면, 빈 목록을 가진 키를 만들고 값을 밀어 넣는다. 키가 리스트 타입이 아니라면 에러를 반환한다. 값을 여러 개 나열하는 것으로 하나 이상의 값을 입력할 수 있다. 값은 0번 인덱스에 들어가며, 기존에 있던...