DBMS

    Redis redis를 이용하여 랭킹 리더보드 구현하기

    Redis redis를 이용하여 랭킹 리더보드 구현하기

    redis 이용한 리더보드 Redis를 사용하여 랭킹 리더보드를 구현 했을 때 장점 Redis는 In-Memory 저장소로 매우 빠른 액세스 속도를 갖습니다. 또한 자료구조(Key-Value) 특성으로 읽기 및 작업 속도를 제공합니다. 때문에 랭킹을 실시간으로 업데이트 할 수 있습니다. Redis는 Sorted Set이라는 데이터 구조를 제공하여 요소를 정렬된 상태로 저장할 수 있습니다. 이 데이터 구조는 랭킹을 구현하는 데 유용합니다. Sorted Set 데이터 구조 이용하기 Redis의 Soted Set 데이터 구조를 조작하기 위해 Spring Data Redis에서 제공하는 인터페이스인 ZSetOperations를 이용해주면 됩니다. ZSetOperations 인터페이스를 통해 다음과 같은 기능을 ..

    Redis redis-cli 명령어 정리

    Redis redis-cli 명령어 정리

    redis-cli 명령어 각 Key는 고유하고, 거기에 대응하는 Value 값에는 Strings, Lists, Hashes 등 다양한 데이터 타입이 저장될 수 있습니다. Redis 커맨드 명령어도 데이터 타입에 따라 쓸 수 있는 것이 달라집니다. Strings # SET : Key에 대응하는 Value에 문자열을 저장합니다. > SET key1 value1 # GET : Key에 대응하는 Value 값을 가져옵니다. > GET key1 "value1" # INCR : Key에 대응하는 Value 값을 Integer로 취급하여 1증가 시킵니다. > SET num 10 > INCR num (integer) 11 # DECR : Key에 대응하는 Value 값을 Integer로 취급하여 1감소 시킵니다. > ..

    Redis 간단하고 빠른 In-Memory 데이터 저장, docker에 Redis 설치, Redis 명령어

    Redis 간단하고 빠른 In-Memory 데이터 저장, docker에 Redis 설치, Redis 명령어

    Redis: Remote Dictionary Server Redis는 메모리 내(In-Memory)에서 데이터를 저장하고 관리하는 오픈 소스 데이터 구조 서버입니다. Redis 특징 1. In-Memory Store Redis는 메모리 내에 데이터를 저장할 수 있는 In-Memory DB 입니다. 디스크보다 메모리에서 데이터를 읽고 쓰는 것이 빠르기 때문에 데이터에 빠르게 액세스 할 수 있습니다. 이러한 특징으로 Redis는 캐시 역할도 하여 다른 DB의 부하를 줄이고 응용 프로그램의 성능을 향상시킬 수 있습니다. Redis는 In-Memory 즉, 휘발성인 RAM에 저장하기 때문에 데이터가 영속성을 갖지 않는 문제가 있습니다. 2. 휘발성 Redis는 메모리 내에 데이터를 저장하기 때문에 시스템을 다시..

    MongoDB  GROUP BY와 유사한 Aggregation

    MongoDB GROUP BY와 유사한 Aggregation

    Aggregation MongoDB의 aggregation은 데이터를 처리하고 변환하기 위한 강력한 도구입니다. Aggregation 파이프라인은 여러 단계의 데이터 처리 단계를 포함하며, 각 단계는 데이터를 조작하고 변환하여 원하는 결과를 생성합니다. 즉 위에서부터 각 단계마다 입력한 Operators에 따라 데이터가 처리되고 처리 된 데이터가 다음 단계로 넘어간다는 것입니다. Aggregation은 SQL의 GROUP BY와 유사한 작업을 수행할 수 있으며, 데이터의 그룹화, 정렬, 필터링, 변환, 계산 등 다양한 작업을 지원합니다. https://www.mongodb.com/docs/manual/reference/operator/aggregation-pipeline/ Aggregation Stage..

    MongoDB 배열 다루는 문법

    MongoDB 배열 다루는 문법

    배열 내 숫자 조건으로 필터링: $elemMatch 배열 내의 숫자를 조건으로 필터링하기 위해선 MongoDB의 배열 쿼리 연산자인 $elemMatch를 사용해야 합니다. # 초기 데이터 { "name": "Kim", "numbers": [5, 10, 15, 20, 25] } $elemMatch 사용하지 않은 경우 db.users.find({ numbers: { $gte: 17, $lte: 19 } }) 이 쿼리는 배열 안에 있는 요소들 중 17이상이고 19이하인 요소가 있는 document를 찾고싶습니다. 위 조건대로 본다면 요소엔 17이상 19이하인 요소는 없기 때문에 위 document는 포함되지 않아야한다 생각합니다. 하지만 결과는 위 document가 결과에 포함됩니다. 그 이유는 위 쿼리는 배..

    MongoDB MQL(MongoDB Query Language)

    MongoDB MQL(MongoDB Query Language)

    SQL vs MQL SQL에 익숙한 사람은 SQL과 비교하여 학습하면 좀 더 MQP을 쉽게 이해할 것이라 생각합니다. https://www.mongodb.com/docs/manual/reference/sql-comparison/ SQL to MongoDB Mapping Chart — MongoDB Manual Docs Home → MongoDB Manual In addition to the charts that follow, you might want to consider the Frequently Asked Questions section for a selection of common questions about MongoDB.The following table presents the various S..

    MongoDB MongoDB 배포 형태: Replica Set & Sharded Cluster

    MongoDB MongoDB 배포 형태: Replica Set & Sharded Cluster

    MongoDB 배포 형태: Replica Set와 Sharded Cluster Replica Set Replica Set은 고가용성(HA)과 데이터 복제를 위해 사용되는 구성입니다. 여러 각 노드는 독립적인 데이터베이스 인스턴스로서 역할을 수행합니다. 때문에 예를 들어 Primary 노드에 장애가 발생하더라도 Secondary 노드들은 여전히 서비스를 제공할 수 있습니다. 이는 시스템의 가용성을 높이고, 사용자가 중단 없이 서비스를 이용할 수 있도록 해줍니다. Primary 노드 Replica Set 중 단 하나의 노드입니다. Primary 노드는 데이터 Read / Write 요청을 모두 처리할 수 있습니다. 다른 Secondary 노드들에게 데이터를 복제합니다. Secondary 노드 Replica ..

    MongoDB MongoDB: 문서 지향 NoSQL

    MongoDB MongoDB: 문서 지향 NoSQL

    MongoDB MongoDB는 NoSQL로서, 오픈소스 문서 지향(Document-Oriented) 데이터베이스 시스템입니다. 우리가 기존에 접할 수 있는 RDBMS(MySQL, Oracle)와는 다른 데이터 형식을 갖고 있는 NoSQL에 대해 먼저 설명하도록 하겠습니다. MongoDB의 특징 NoSQL NoSQL은 'Not Only SQL' 또는 'Non-Relational'의 약자로, 관계형 데이터베이스(RDBMS)와는 다른 DB 시스템입니다. NoSQL은 다양한 유형으로 나뉘며, 각 유형마다 특정한 데이터 모델과 사용 사례에 최적화되어 있습니다. 아래와 같은 유형은 NoSQL의 대표적인 유형입니다. Document Store: MongDB Key-Value Store: Redis, DynamoDB ..