NoSql, MemoryDB 16

NoSQL 특징및 분류

NoSQL 특징및 분류 NoSQL은 아래와 같은 속성을 가지고 있다. · Key-Value (키-밸류) 값 또는 이를 응용한 데이터 모델 · 상대적으로 값싼 다수의 하드웨어를 이용 · 데이터는 분산된 노드에 파티션 및 복제되어 저장 · 데이터의 정합성 보다 단절내성에 대한 요구사항에 목적 · 2단계 커밋의 트랜잭션 수준보다, 정족수 기반의 트랜잭션 선호 데이터 모델은 아래와 같이 분류 할 수 있다. · Key-Value : 가장 단순한 데이터 모델로, 키와 바이너리 타입의 값을 저장소에 저장하는 구조이며, 데이터 조회또하 키로만 조회할 수 있다. · Column : 관계형 데이터베이스와 비슷하게 데이터는 컬럼에 저장되며, 트에빌, 컬럼등과 같은 스키마가 존재한다. · Document : 데이터의 저장단위..

NoSql, MemoryDB 2020.06.09

CAP 이론

CAP 이론 관계형 데이터베이스는 ACID 속성을 가지고 있으며 안전하게 저장하고 정합성을 보장하는데 주목적이 있다. · Atomicity(원자성) : 트랜잭션과 관련된 모든 작업들이 정상적으로 수행 되었는지, 아니면 모든 작업들이 수행되지 않았는지를 보장한다. 원자성은 중간 단계까지 실행되고 실행이 실패하는 일은 없도록 한다. · Consistency(일관성) : 트랜잭션 실행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 유지한다. · Isolation(고립성) : 트랜잭션이 실행되는 동안 다른 트랜잭션의 작업이 끼어들지 못하게 보장한다. 즉, 다른 트랜잭션에서 중간단계의 데이터를 확인할 수 없다. · Durability(지속성) : 성공적으로 수행된 트랜잭션은 영원히 유지되어야 한다...

NoSql, MemoryDB 2020.06.08

Redis Memory LFU(Least Frequently Used) 캐시

Redis Memory LFU(Least Frequently Used) 캐시 · Version : Redis 4.0 Redis 4.0 부터 제공되는 LFU 알고리즘 캐시는 자주 참조되는 데이터만 배치하고 그렇지 않은 데이터들은 메모리로부터 제거하여 자주 사용되는 데이터들이 메모리에 배치되도록하는 알고리즘이다. LRU 알고리즘은 최근에 액세스 했지만 실제로는 거의 요청하지 않는 항목에 대해서도 메모리에 보관하고 자주 요청되는 키에 대해서는 만료가 되기 때문에 의도하지 않은 성능이 나타날 수도 있다. LFU는 Approximated LRU와 유사하다. 모리스 카운터라고 하는 확률적 카운터를 사용하여 개체의 액세스 빈도를 계산하고 감쇠 기간과 결합하여 시간이 지남에 따라 카운터가 감소한다. 알고리즘은 액세스 ..

NoSql, MemoryDB 2019.06.07

Redis Memory LRU(Least Recently Used) 캐시

Redis Memory LRU(Least Recently Used) 캐시 · Version : Redis 3.2.100 (Windows) Redis에서 캐시로 사용되는 알고리즘으로 LRU(Least Recently Used)를 사용한다. LRU 알고리즘은 최근에 사용된 데이터들은 재사용이 될 가능성이 높다고 판단하여 계속해서 메모리에 상주 시킬수 있도록 재배치 하는 작업이다. LRU 알고리즘으로 Redis 서버 인스턴스를 운영하기 위해서는CONFIG SET 명령어 또는 redis.conf 파일에서 아래 파라메터를 수정한다. · maxmemory · maxmemory-samples 5 maxmemory 파라메터는 Redis 서버에 할당할 수 있는 최대 메모리 크기이며, 이 값을 0로 설정할 경우 최대 메모..

NoSql, MemoryDB 2019.06.04

Redis Memory 정보

Redis Memory 정보 · Version : Redis 3.2.100 (Windows) Redis에서 info명령은 서버의 각종 통계 및 상태를 보여준다. 다양한 매개 변수를 사용하여 특정 정보를 확인할 수 있으며 이번 포스트에서는 메모리 관련 정보를 확인해본다. Redis에 접속하여 Redis info 명령을 실행하면 메모리 관련 사용 정보를 반환한다. info memory · *_human 값은 동일 항목의 byte 값을 Kbyte로 변환하여 나타낸 값 Info linst Comments used_memory Redis 서버에 현재 할당된(libc, jemalloc, tcmalloc 등) 메모리 크기 (byte) used_memory_rss 운영체제에서 볼 때 Redis가 할당한 byte 수. ..

NoSql, MemoryDB 2019.05.21

Redis Architecture

Redis Architecture · Version : Redis 3.2.100 (Windows) 아래 그림은 Redis Server Architecture 이며, 크게 3가지 영역인, 메모리, 파일, 프로세스 영역으로 구성되어 있다. [메모리 영역] · Resident Area (Working Set) : 사용자가 Redis 서버에 접속해서 처리하는 모든 데이터가 가정 먼저 저장되는 영역이며 실제 작업이 수행되는 영역. · Data Structure : Redis를 운영하기 위한 다양한 정보를 저장하고 관리하기 위한 영역. [파일 영역] · AOF 파일 : 메모리에 저장된 사용자 데이터를 파일에 기록하는 영역 (스냅샷 데이터) · DUMP 파일 : 소량의 데이터를 일시적으로 저장할때 사용하는 영역 [프..

NoSql, MemoryDB 2019.05.18

Redis 데이터 타입 – Geo

Redis 데이터 타입 – Geo · Version : Redis 3.2.100 (Windows) Redis 의 Geo 데이터 타입은 위치정보(위도, 경도) 데이터를 효율적으로 저장하고 사용할 수 있다. geoadd, geopos, geodist, georadius, geohash 명령어를 사용한다. [geoadd] 데이터를 저장한다. geoadd key longitude latitude member [longitude latitude member] … ex) geopos position 127.1058431 37.5164113 “Local A” 127.0980748 37.5301218 “Local 2” [geopos] 데이터를 검색한다 geopos key member [member] … ex) geop..

NoSql, MemoryDB 2019.05.15

Redis 데이터 타입 – bit

Redis 데이터 타입 – bit · Version : Redis 3.2.100 (Windows) Redis 의 bit는 0과 1로 표시하며 setbit, getbit, bitcount 명령어를 사용한다. [setbit] 데이터를 저장한다. Serbit key offset value ex) setbit order:20190509 1001 1 [getbit] 데이터를 검색한다. getbit key offset ex) getbit order:20190509 1001 [bitcount] 키 범위내의 value 카운트를 나타낸다. bitcount key start end ex) bitcount order:20190509 0 -1 [참고자료] https://redis.io/commands 2019-05-09 / ..

NoSql, MemoryDB 2019.05.10

Redis 데이터 타입 – Sorted Set

Redis 데이터 타입 – Sorted Set · Version : Redis 3.2.100 (Windows) Redis 의 Sorted Set 데이터 타입은 Set과 동일한 구조이며 차이점은 데이터가 정렬된 상태로 저장된다는 것이다. 명령어는 zadd, zrange, zcard, zcount, zrank, zrevrank를 사용한다. [zadd] 데이터를 저장할때 zadd 명령을 사용한다. zadd key member member … ex) zadd order:20190502 1 “{order_id:1, order_name:sungwook, item_name:redis_1, itemprice:1}” 2 “{order_id:2, order_name:sungwook, item_name:redis_2, it..

NoSql, MemoryDB 2019.05.03

Redis 데이터 타입 - Set

Redis 데이터 타입 - Set · Version : Redis 3.2.100 (Windows) Redis 의 Set 데이터 타입은 Element 단위로 저장한다. Set 타입의 데이터를 핸들링할 때에는 sadd, smembers, scard, sdiff, sunion 명령어를 사용한다. [sadd] 데이터를 저장할때 sadd 명령을 사용한다. sadd key member member … ex) sadd order “order_id:1, order_name:sungwook, item_name:redis, itemprice:0” “order_id:2, order_name:sungwook2, item_name:redis2, itemprice:2” [smembers] Set 으로 저장된 데이터 검색은 sme..

NoSql, MemoryDB 2019.04.30