Redis

Redis

[REDIS] 좋아요 구현

소셜 커머스나 소셜 네트워크 사이트를 서핑하다 보면, 항상 특정 게시물에 대한 "좋아요" 기능이 있는 걸 볼 수 있다.  그럼 해당 "좋아요" 기능은 어떤식으로 구현할 수 있을까? 첫 번째로는 아래와 같이 RDBMS에 좋아요 정보를 저장하는 방법이 있다.    RDBMS로 좋아요를 구현할 때의 장점  1) 데이터 무결성과 일관성 RDBMS는 엄격한 데이터 무결성 규칙을 제공하며, ACID(Atomicity, Consistency, Isolation, Durability)  속성을 통해 데이터의 정확성과 일관성을 보장한다. 이는 좋아요 수와 같이 정확한 계산이 필요한 기능에 적합하다.   2) 복잡한 쿼리와 조인 지원 관계형 데이터베이스는 복잡한 쿼리와 다양한 테이블 간의 조인(JOIN)을 지원한다. 사용..

Redis

[Redis] key 삭제 api 구현

Redis 관리 업무를 보거나, Redis를 통해서 개발을 한 경험이 있는 프로그래머라면, 한 번쯤 Redis에서 특정 key 패턴을 만족하는 모든 키를 지워줘야 하는 상황을 만날 수 있다. 이럴 경우 redis-cli 에 접속해서 key 값 하나하나씩 삭제하는 방식은 key의 개수가 별로 크지 않을 때에는 상관없지만, 실제로 운영되는 Redis 데이터 베이스에서는 특정 key 패턴을 만족하는 key의 개수가 엄청 많기 때문에, 사실상 위의 방법은 불가능하다고 봐야 한다. 그럼 해당 기능이 필요할 때마다, 간단하게 사용할 수 있는 api를 만들어두면 업무를 수행하는데 훨씬 편해질 것이다. 해당 기능을 수행하는 api 를 python을 통해서 구현해 보자. 일단 특정 키패턴을 만족하는 모든 키를 삭제해 주..

Redis

[Redis] Key 삭제

Redis Key 란? Redis는 인메모리 데이터 스토어로서, 키-값(key-value) 쌍을 저장하고 관리하는 데 사용한다. Redis의 핵심 원칙 중 하나는 데이터 모델이 간단하고 유연하다는 것이며, 이는 Redis의 모든 데이터가 고유한 키로 식별된다는 의미를 갖는다. Redis 에서 키(Key)는 Redis에서 데이터를 저장하고 검색하기 위한 고유한 식별자이다. 키는 문자열 형태로 저장되며, Redis의 다양한 데이터 유형(문자열, 해시, 목록, 집합, 정렬된 집합 등)을 다루는 데 사용된다. Redis의 키는 일반적으로 명명 규칙에 따라 구성되는데, 이는 개발자가 데이터를 쉽게 식별하고 접근할 수 있도록 도와준다. Redis의 키(Key)는 일반적인 작업으로는 데이터 저장, 조회, 수정, 삭제..

Redis

[Redis] SCAN

SCAN 이란? Redis는 인-메모리 데이터 구조 스토어이다. Redis는 Key-Value 데이터 구조를 사용하여, 데이터를 메모리에 유지하고, 매우 빠른 성능으로 데이터를 읽고 쓰기가 가능하다. Redis는 데이터베이스에 저장된 키/값 쌍의 목록을 관리하는 데 사용할 수 있는 다양한 명령어를 제공한다. "SCAN"은 이러한 명령어 중 하나로, Redis 데이터베이스에서 키/값 쌍을 반복적으로 조회하는 데 사용된다. Redis KEYS 명령어를 사용하여 Redis 데이터베이스에서 특정 패턴에 일치하는 키를 찾아 반환할 수 있지만, 싱글스레드를 사용하는 Redis 구조의 특성상 다른 모든 일을 제쳐두고 해당 명령만 수행하게 되므로 (작업시간 O(N) 소요) 대규모 데이터베이스에서 사용할 때는 Redis..

Redis

[Redis] Redis 설치

Redis 서버를 Linux-ububtu 환경에서 구축해보자. 일단 아래와 같이 네트워크 서버에서 tar 파일을 받아준다. # update package information sudo apt-get update # install Open JDK sudo apt-get install openjdk--jdk # checking java installation information java --version 그리고 각종 패키지 업데이트와 make, gcc 빌드에 필요한 여러 라이브러리를 설치해준다. sudo apt-get install libsystemd-dev sudo apt-get install build-essential tcl tk sudo apt-get install libsss-sudo sudo a..

Redis

[Redis] Redis Cluster

파티셔닝을 통해서 데이터를 분산으로 저장하다 보면 예상하지 못한 문제로 인해서 서버에 장애가 생길 수 있다. 서버에 장애가 생기게 되면 데이터 유실이 발생할 수 있고 제공하는 서비스에도 심각한 영향을 미칠 수 있다. 이를 방지하기 위해서는 분산 서버마다 복제된 서버를 함께 운영해야 한다.(고가용성을 위함) 이와 같이 Redis 환경에서 데이터 분산처리를 위한 파티셔닝 시스템과 안정성 확보를 위한 복제 시스템을 함께 사용하는 것을 Redis Cluster 라고 부른다. Cluster를 사용하여 데이터를 분산시키는 목적을 가지는데 하나의 서버에서 분산처리를 한다면, 해당 서버에 장애가 발생했을 때 분산처리 자체가 불가능해진다. 이를 해결하고자 최소 3대의 Master 서버를 통하여 데이터를 분산하여 저장하는..

Redis

[Redis] Redis 란?

Redis는 nosql의 한 종류로써 모든 데이터를 메모리에 저장하고 조회하는 인메모리 방식의 데이터베이스이다. nosql 구조답게 key-vale 데이터 구조 스토어이고 여러 자료구조를 지원하며 크게 String, Bitmaps, Bitfield, Hashes, Lists, Sets, Sorted sets, Geospartial indexess... 등의 타입을 지원한다. RDB (Relational DataBase)에 비해 많은 자료구조를 지원한다는 장점도 있지만, 인메모리 방식의 DB 이기 때문에 Disk 에 직접 읽고 쓰는 작업을 수행하는 RDB에 비해서 월등히 빠르다는 장점이 있다. 1) 영속성을 지원하는 인메모리 데이터 저장소이다. 2) 읽기 성..

ssh9308
'Redis' 카테고리의 글 목록