redis 14

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

Redis 데이터 타입 - List

Redis 데이터 타입 - List · Version : Redis 3.2.100 (Windows) Redis 의 List 데이터 타입은 배열(Array) 과 비슷한 데이터 구조이다. List 타입의 데이터를 핸들링할 때에는 lpush, lrange, rpush, rpop, llen, lindex 명령어를 사용한다. [lpush] List 타입은 하나의 key에 여러 개의 value를 저장할 수 있다. lpush key value value value … lpush order:20190426 "1redis000" "2client000” [lrange] List 형태의 데이터를 검색할때 lrange 명령어를 사용한다. 명령어 사용시 key, start, stop 값을 함께 사용한다. 아래 스크립트는 0 -..

NoSql, MemoryDB 2019.04.27

Redis 데이터 타입 - Hash

Redis 데이터 타입 - Hash · Version : Redis 3.2.100 (Windows) Redis 에서 데이터를 저장할때, 하나의 key 에 여러 개의 Value를 저장할때에는 Hash 데이터 타입을 사용할 수 있다. Hash 데이터 타입은 하나의 key 에 하나 이상의 value 값을 콜론(:)으로 구분하여 데이터를 저장할 수 있다. 기본적으로 필드의 갯수는 제한이 없으며, Value 값에 문자열을 사용할 때는 “string”를 사용한다. order_date:20190426, order_name:”sungwook”:”kang” [hmset / hget / hmget] Hash 타입의 데이터를 입력할때 hmset 명령어를 사용한다. 데이터를 검색할 때에는 hget 명령어를 사용한다. hmse..

NoSql, MemoryDB 2019.04.26