본문 바로가기
데이터베이스

Redis 의 진정한 오픈소스 후계자, 인메모리 데이터스토어의 새로운 표준 Valkey 에 대해 알아보겠습니다.

by forward error correction Circle 2026. 5. 4.
반응형

Ⅰ. Valkey 란?

 Valkey(밸키)는 2024년 3월 28일 Linux Foundation 산하에서 출범한 Redis 7.2.4 기반의 BSD 3-Clause 오픈소스 인메모리 데이터스토어입니다. Redis Inc. 가 2024년 3월 20일 자사 코드 라이선스를 BSD 에서 SSPL/RSALv2(Source-Available) 로 일방적으로 전환하자, Redis 의 핵심 메인테이너 Madelyn Olson(5년차 코어 기여자) 과 AWS · Google Cloud · Oracle · Ericsson · Snap Inc. 가 단 8일 만에 포크(Fork) 를 결성해 만들어낸, "진정한 오픈소스 Redis 후계자" 입니다. 단순한 분기에 그치지 않고 2024년 9월 Valkey 8.0 GA 에서 비동기 I/O 멀티스레딩 · 메모리 사용량 20% 절감 · RDMA(베타) · 향상된 클러스터 슬롯 마이그레이션을 도입했고, 2025년 9월 Valkey 8.1 에서는 Bloom Filter · JSON · Vector Search 모듈을 코어에 내장하면서 "단순 캐시" 를 넘어 "AI · 벡터 · 이벤트 스트리밍 통합 데이터 플랫폼" 으로 진화했습니다. 2026년 4월 현재 v9.0 마일스톤이 진행 중이며, AWS ElastiCache for Valkey · Google Memorystore for Valkey · Oracle OCI Cache · Heroku · DigitalOcean Managed Valkey 등 주요 클라우드의 정식 기본 엔진으로 채택되었고, 카카오 · 네이버 · 라인 · 우아한형제들 · 토스 · 야놀자 · 컬리 · SK텔레콤 등 국내 주요 기업의 캐시 · 세션 · 큐 · 리더보드 · 실시간 분석 인프라가 빠르게 Valkey 로 이전되고 있습니다.

■ Valkey vs 주요 인메모리 데이터스토어 비교

비교 항목 Valkey 8.x Redis 7.4(SSPL) DragonflyDB KeyDB
라이선스 BSD 3-Clause(완전 OSS) SSPL / RSALv2 BSL 1.1 BSD 3-Clause
거버넌스 Linux Foundation(중립) Redis Inc. 단독 DragonflyDB Inc. Snap Inc. 후원 종료
스레딩 모델 단일 + 비동기 I/O 멀티 단일 + I/O 스레드 완전 멀티스레드(Shared-Nothing) 멀티스레드 액티브-액티브
RESP 호환 RESP2 · RESP3 100% RESP2 · RESP3 RESP2 · RESP3 RESP2 · RESP3
클러스터 16384 슬롯 + 다중 슬롯 마이그레이션 16384 슬롯 독자 샤딩(Pull) 액티브-액티브 복제
모듈 / 확장 Bloom · JSON · Vector 코어 내장 Stack 별도 라이선스 일부 호환 거의 없음
벡터 검색 VSIM · VEMB(8.1 +) RediSearch(상용) 제한적 미지원
매니지드 서비스 AWS · GCP · Oracle · DO Redis Cloud · Azure Dragonfly Cloud 없음(EOL 위험)
대표 사용처 AWS, Google, 카카오, 라인 X(트위터), Stack Overflow 일부 스타트업 일부 미디어 기업

Ⅱ. Valkey 주요 특징

 ⅰ. 100% 오픈소스 BSD 3-Clause

   : SSPL · BSL · 듀얼 라이선스 같은 상업 사용 제한이 전혀 없는 BSD 3-Clause 로 영구 보장되어, 클라우드 사업자 · SaaS 제공사 · 기업 내부 임베딩까지 라이선스 비용 · 법무 검토 부담 없이 자유롭게 활용할 수 있습니다.

 ⅱ. Redis 100% 와이어 호환

   : RESP2 · RESP3 프로토콜과 명령어 셋(GET/SET/INCR/HSET/ZADD/XADD …) 이 완전히 동일해, redis-cli · Lettuce · Jedis · ioredis · go-redis · redis-py 등 기존 클라이언트를 한 줄도 고치지 않고 즉시 연결할 수 있습니다.

 ⅲ. 비동기 I/O 멀티스레딩(8.0+)

   : 명령 처리 자체는 결정성 보장을 위해 단일 스레드를 유지하되, 네트워크 읽기/쓰기 · 응답 인코딩을 비동기 I/O 스레드로 분리해 단일 노드에서 200% 이상의 처리량 향상을 달성합니다.

 ⅳ. 메모리 효율 20% 개선

   : 키 임베딩(Embedded Key) 최적화로 작은 키-값 데이터의 오버헤드를 줄이고, listpack · ziplist 인코딩을 정교화해 동일 데이터셋에서 RAM 사용량을 평균 20% 절감해 인프라 비용을 직접적으로 낮춥니다.

 ⅴ. 다중 슬롯 동시 마이그레이션

   : 기존 Redis Cluster 가 한 번에 한 슬롯씩 옮기던 한계를 깨고, 8.1+ 부터 여러 슬롯을 병렬 이전(CLUSTER SLOTS-MIGRATE) 해 리샤딩 시간이 5~10배 단축됩니다.

 ⅵ. 코어 내장 벡터 · JSON · Bloom

   : 8.1 부터 RedisJSON · RedisBloom · 벡터 검색(VSIM/VEMB) 이 코어로 합류해, 별도 모듈 라이선스 없이 RAG · 추천 · 중복 검출 · 부정거래 탐지 워크로드를 하나의 데이터스토어에서 처리합니다.

 ⅶ. RDMA · TLS 1.3 · IPv6

   : 8.0 의 RDMA(Beta) 트랜스포트로 InfiniBand · RoCE 환경에서 대역폭 800% 향상 사례가 보고되며, TLS 1.3 · IPv6 · IPv4/6 듀얼 스택을 코어 차원에서 지원해 차세대 네트워크에 대비합니다.

 ⅷ. 풍부한 자료구조

   : String · Hash · List · Set · Sorted Set · Stream · HyperLogLog · Bitmap · Geo · Bitfield · Bloom · JSON · Vector 까지 13종의 1차 자료구조를 단일 프로토콜로 다뤄, 별도 시스템 없이 캐시 · 큐 · 시계열 · 검색 워크로드를 통합합니다.

 ⅸ. 다양한 영속성(Persistence) 모드

   : 메모리 외에도 RDB(스냅샷) · AOF(쓰기 로그) · 혼합(RDB+AOF Rewrite) · No-Persistence 모드를 선택할 수 있어, 캐시(휘발성) ~ Source-of-Truth(영속성) 까지 워크로드별 최적화가 가능합니다.

 ⅹ. 중립 거버넌스(Linux Foundation)

   : 단일 회사가 아닌 Linux Foundation 산하 TOC(Technical Oversight Committee) 가 의사결정을 주도하고, AWS · Google · Oracle · Ericsson · Snap 등이 공동 후원해 한 회사의 라이선스 정책 변경에 다시는 휘둘리지 않는 구조를 갖추고 있습니다.

Ⅲ. Valkey 동작 방식

 Valkey 는 단일 valkey-server 프로세스 안에서 "Networking Layer → I/O Threading Layer → Single-Threaded Command Processor → Data Structure Layer → Persistence(RDB · AOF) Layer → Replication / Cluster Layer" 6계층 구조가 협력하며 동작합니다. 클라이언트가 RESP 명령을 보내면, 다음 9단계가 자동으로 흐릅니다.

ⅰ. 연결 수락(Accept) : OS 의 epoll/kqueue 가 새 TCP/TLS/Unix 소켓을 감지하고, Acceptor 가 클라이언트 컨텍스트(client struct) 를 생성합니다.

ⅱ. 비동기 읽기(Async Read) : I/O 스레드 풀이 RESP 바이트 스트림을 비동기로 읽고 디코딩해, 메인 스레드가 받을 수 있는 명령 큐(Pending Commands) 에 적재합니다.

ⅲ. 명령 라우팅(Routing) : 메인 스레드는 키의 CRC16(key) % 16384 해시 슬롯을 계산해, 해당 슬롯이 자기 노드에 속하면 직접 처리하고 아니면 MOVED/ASK 응답으로 클러스터 리다이렉트를 안내합니다.

ⅳ. 자료구조 처리 : 단일 스레드가 String · Hash · ZSet · Stream 등에 대한 명령을 결정성 있게 실행하며, 메모리 내 자료구조(dict · skiplist · listpack · quicklist) 를 직접 변경합니다.

ⅴ. 영속성 기록 : appendonly 모드일 경우 명령이 AOF 버퍼에 기록되고, fsync 정책(always/everysec/no) 에 따라 디스크에 동기화됩니다.

ⅵ. 복제(Replication) : 변경된 명령은 복제 백로그(Repl Backlog) 에 쌓여 마스터 → 레플리카로 비동기 PSYNC2 스트림으로 전파됩니다.

ⅶ. 비동기 응답(Async Reply) : 결과 객체는 다시 I/O 스레드 풀로 넘어가 RESP 인코딩 및 소켓 쓰기가 병렬로 수행됩니다.

ⅷ. 만료 / Eviction : 백그라운드 cron 잡이 expire 사전을 샘플링해 만료 키를 삭제하고, maxmemory 도달 시 LRU/LFU/TTL 정책에 따라 키를 축출합니다.

ⅸ. 클러스터 가십(Gossip) : 노드들은 100ms 마다 PING/PONG 메시지로 토폴로지 · 슬롯 소유권 · 장애 정보를 가십 프로토콜로 동기화하고, 마스터 장애 시 레플리카가 자동 승격됩니다.

단계 처리 주체 핵심 동작 / 산출물
연결 수락 Acceptor / epoll client struct 생성, TLS 핸드셰이크
비동기 읽기 I/O Thread Pool RESP 디코딩, Pending Command 큐 적재
명령 라우팅 Main Thread / Cluster CRC16 슬롯 계산, MOVED/ASK 응답
자료구조 처리 Single-Thread Processor dict · skiplist · listpack 변경
영속성 기록 AOF Writer / RDB BGSAVE AOF 버퍼 · fsync, 자식 프로세스 스냅샷
복제 전파 Replication Backlog PSYNC2 비동기 스트림
비동기 응답 I/O Thread Pool RESP 인코딩, 소켓 쓰기 병렬화
만료 / Eviction serverCron / Evictor 샘플링 만료, LRU/LFU 축출
클러스터 가십 Cluster Bus PING/PONG, 슬롯 소유권 동기화

Ⅳ. Valkey 구성 및 흐름도

 Valkey 의 실제 운영 토폴로지는 "Application → Connection Pool → Valkey Sentinel/Cluster → Primary(Master) → Replica → Persistence(RDB/AOF) → Backup Storage(S3/MinIO)" 의 7개 계층으로 구성됩니다. 단일 노드부터 멀티 리전 클러스터까지 동일한 RESP 프로토콜로 일관되게 확장됩니다.

ⅰ. 클라이언트 계층 : 애플리케이션은 Lettuce · Jedis · ioredis · go-redis · redis-py 등 RESP 클라이언트를 사용해 커넥션 풀을 통해 Valkey 에 접속합니다.

ⅱ. 디스커버리 계층 : Sentinel(센티넬) 또는 Cluster Bus 가 마스터 위치 · 슬롯 소유권을 클라이언트에 알려, 페일오버 시 자동 재연결을 가능케 합니다.

ⅲ. 프록시 / LB(선택) : Envoy · HAProxy · AWS NLB · Twemproxy 가 앞단에서 TLS 종료 · 부하 분산 · 명령 라우팅을 담당할 수 있습니다.

ⅳ. Primary 노드 : 쓰기/읽기를 처리하는 마스터 노드로, 단일 스레드 명령 처리기 + I/O 스레드 풀 구조를 갖습니다.

ⅴ. Replica 노드 : 마스터의 복제본으로 PSYNC2 비동기 스트림을 받아, READONLY 명령으로 읽기 트래픽을 흡수합니다.

ⅵ. 영속성 계층 : RDB 스냅샷(BGSAVE) · AOF 쓰기 로그를 디스크에 기록하고, 백그라운드 자식 프로세스가 RDB Rewrite · AOF Rewrite 를 수행해 파일 크기를 압축합니다.

ⅶ. 백업 / DR : RDB · AOF 파일을 S3 · MinIO · GCS 로 정기 업로드해 시점 복구 · 다른 리전으로의 복원에 활용합니다.

ⅷ. 모니터링 : valkey-exporter + Prometheus + Grafana, 그리고 INFO · LATENCY DOCTOR · SLOWLOG 명령으로 메모리 · QPS · 슬로우 쿼리 · 키스페이스 통계를 수집합니다.

ⅸ. 보안 계층 : TLS 1.3 · ACL(사용자/명령어 권한) · IP Allowlist · 클라이언트 인증서를 통해 제로 트러스트 캐시 인프라를 구성합니다.

구성 요소 역할 특징 / 비고
Client SDK RESP 명령 송수신 Lettuce/Jedis/ioredis/redis-py/go-redis 그대로 사용
Sentinel HA 모니터링 / 페일오버 다수결 기반 마스터 자동 승격
Cluster Bus 슬롯 분배 / 가십 통신 16384 슬롯 · TCP 16379 포트
Primary(Master) 쓰기/읽기 처리 단일 스레드 + I/O 멀티스레드
Replica(Slave) 읽기 분산 / DR PSYNC2 비동기 복제, READONLY
RDB 파일 주기적 메모리 스냅샷 fork() COW · 빠른 풀 백업
AOF 파일 쓰기 명령 로그 fsync 정책에 따른 내구성 조정
Backup Store S3/MinIO 장기 보관 PITR · 다른 리전 복원
Exporter / Grafana 메트릭 수집·시각화 QPS/Hit ratio/Memory/Latency

Ⅴ. Valkey 설치 방법

 Valkey 는 단일 실행 파일(valkey-server) 로 동작하기 때문에 패키지 매니저 · 컨테이너 · Helm · 매니지드 서비스 등 다양한 경로로 5분 이내 설치할 수 있습니다. 운영 등급에서는 컨테이너 + Sentinel/Cluster 또는 매니지드 서비스를 권장합니다.

ⅰ. Linux 패키지 설치(Ubuntu 24.04 / RHEL 9)

## Ubuntu 24.04 / Debian 12
sudo apt-get update
sudo apt-get install -y valkey-server valkey-tools
sudo systemctl enable --now valkey-server
valkey-cli ping        # → PONG

## RHEL 9 / Rocky 9 (EPEL)
sudo dnf install -y epel-release
sudo dnf install -y valkey valkey-cli
sudo systemctl enable --now valkey

ⅱ. 소스 빌드(공식 권장 — 최신 버전)

git clone -b 8.1 https://github.com/valkey-io/valkey.git
cd valkey
make BUILD_TLS=yes BUILD_WITH_RDMA=yes -j$(nproc)
sudo make install PREFIX=/opt/valkey
/opt/valkey/bin/valkey-server --version

ⅲ. Docker / Podman

docker run -d --name valkey \
  -p 6379:6379 \
  -v $PWD/data:/data \
  valkey/valkey:8.1 \
  valkey-server --appendonly yes --maxmemory 2gb --maxmemory-policy allkeys-lru

ⅳ. Kubernetes (Helm)

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install vk bitnami/valkey \
  --set architecture=replication \
  --set replica.replicaCount=2 \
  --set sentinel.enabled=true \
  --set tls.enabled=true

ⅴ. 매니지드 서비스

## AWS ElastiCache for Valkey
aws elasticache create-replication-group \
  --replication-group-id prod-vk \
  --engine valkey --engine-version 8.1 \
  --num-node-groups 3 --replicas-per-node-group 1 \
  --cache-node-type cache.r7g.large

## GCP Memorystore for Valkey
gcloud memorystore instances create vk-prod \
  --location=asia-northeast3 \
  --shard-count=3 --replica-count=1 \
  --node-type=highmem-medium

## Oracle OCI Cache(Valkey)
oci cache cluster create --cluster-mode SHARDED \
  --node-count 3 --node-memory-in-gbs 16 \
  --software-version VALKEY_8_1

Ⅵ. Valkey 사용 방법

 Valkey 는 RESP 호환 클라이언트 한 줄이면 즉시 사용할 수 있고, 워크로드에 따라 캐시 · 세션 · 리더보드 · 큐 · Pub/Sub · 스트리밍 · 벡터 검색까지 단일 엔드포인트로 처리할 수 있습니다.

ⅰ. Python(redis-py) 캐시 패턴

import redis, json
r = redis.Redis(host="vk.prod", port=6379, ssl=True, decode_responses=True)

def get_user(uid: int) -> dict:
    key = f"user:{uid}"
    cached = r.get(key)
    if cached:
        return json.loads(cached)
    user = db.fetch_user(uid)               # DB 조회
    r.set(key, json.dumps(user), ex=300)    # TTL 5분
    return user

ⅱ. Java(Lettuce) 분산 락(SETNX)

StatefulRedisConnection<String,String> conn = ...;
String token = UUID.randomUUID().toString();
String ok = conn.sync().set("lock:order:" + id, token,
                SetArgs.Builder.nx().ex(10));
if ("OK".equals(ok)) {
    try { processOrder(id); }
    finally {
        // Lua 스크립트로 안전 해제
        conn.sync().eval(
          "if redis.call('get', KEYS[1]) == ARGV[1] " +
          "then return redis.call('del', KEYS[1]) else return 0 end",
          ScriptOutputType.INTEGER,
          new String[]{"lock:order:" + id}, token);
    }
}

ⅲ. Node.js(ioredis) 리더보드(ZSET)

const Redis = require("ioredis");
const r = new Redis.Cluster([{ host: "vk-1", port: 6379 }]);

await r.zadd("game:rank", 1500, "user:1024");
await r.zincrby("game:rank", 50, "user:1024");
const top10 = await r.zrevrange("game:rank", 0, 9, "WITHSCORES");

ⅳ. Go(go-redis) Streams 큐

rdb := redis.NewClient(&redis.Options{Addr: "vk:6379"})
// Producer
rdb.XAdd(ctx, &redis.XAddArgs{
    Stream: "events",
    Values: map[string]interface{}{"type": "order", "id": 42},
})
// Consumer Group
rdb.XGroupCreateMkStream(ctx, "events", "wkr", "$")
msgs, _ := rdb.XReadGroup(ctx, &redis.XReadGroupArgs{
    Group: "wkr", Consumer: "c1",
    Streams: []string{"events", ">"},
    Block: 5 * time.Second,
}).Result()

ⅴ. 운영 시 고려사항

고려 항목 권장 설정 / 패턴 이유 / 효과
최대 메모리 maxmemory = 인스턴스의 75% OOM · COW fork 메모리 폭증 방지
축출 정책 allkeys-lru 또는 allkeys-lfu 핫 데이터 유지, 콜드 데이터 우선 제거
영속성 AOF everysec + RDB 6h 스냅샷 1초 손실 허용, 빠른 풀 복구 가능
I/O 스레드 io-threads = 4~8(코어의 절반) 처리량 2~3배, 컨텍스트 스위치 비용 균형
커넥션 풀 앱당 50~200, idle timeout 300s 핸드셰이크 비용 ↓, 누수 방지
슬로우 로그 slowlog-log-slower-than 10000us 10ms 이상 명령 추적
키 네임스페이스 service:entity:id 형식 강제 충돌 방지 · 모니터링 그루핑
TLS / ACL TLS 1.3 + 사용자별 ACL + 명령어 화이트리스트 제로 트러스트, FLUSHALL · CONFIG 차단
백업 RDB → S3 + 7일 보존 PITR · 리전 간 복원
모니터링 valkey-exporter + Grafana 대시보드 QPS · Hit% · Mem · Repl Lag 추적

Ⅶ. Valkey 자주 쓰는 명령어

 Valkey 명령어는 valkey-cli(대부분의 RESP 클라이언트와 동일) 로 실행하며, GET/SET 기본부터 클러스터 · ACL · 영속성 · 디버깅까지 포괄합니다. 실무에서 자주 쓰는 명령을 분류해 정리합니다.

분류 명령어 / 사례 설명
접속 valkey-cli -h vk.prod -p 6379 --tls -a $PASS TLS + 패스워드 접속
핑 / 정보 PING / INFO / DBSIZE / TIME 헬스체크, 서버 통계, 키 개수
String SET k v EX 60 / GET k / INCRBY counter 10 TTL, 원자 카운터
Hash HSET user:1 name kim age 30 / HGETALL user:1 객체 필드 단위 저장
List(Queue) LPUSH q job1 / BRPOP q 0 좌측 입력 / 우측 블로킹 소비
Set SADD tags ai db / SMEMBERS tags 유니크 멤버 집합
Sorted Set ZADD rank 1500 u1 / ZREVRANGE rank 0 9 WITHSCORES 리더보드 / 우선순위 큐
Stream XADD events * type order / XREADGROUP GROUP g c COUNT 10 STREAMS events > 이벤트 스트림 · 컨슈머 그룹
Pub/Sub PUBLISH chat hi / SUBSCRIBE chat 채팅 / 알림 브로드캐스트
키 관리 EXPIRE k 60 / TTL k / PERSIST k / DEL k TTL 부여·해제·삭제
스캔 SCAN 0 MATCH user:* COUNT 100 대용량 환경에서 KEYS * 대체
벡터(8.1+) VEMB add idx id1 0.1 0.2 ... / VSIM idx FROM 0.1 ... K 5 임베딩 저장 · 유사도 검색
JSON JSON.SET k $ '{"x":1}' / JSON.GET k $.x RedisJSON 호환 명령
Bloom BF.ADD seen abc / BF.EXISTS seen abc 중복 검출 · 부정거래 1차 필터
스크립트 EVAL "return redis.call('GET', KEYS[1])" 1 mykey Lua 원자 실행
트랜잭션 MULTI / SET k v / INCR c / EXEC 명령 묶음 원자 실행
Pipeline valkey-cli --pipe < bigload.txt 대량 입력 RTT 최적화
ACL ACL SETUSER app on >pw +@read +@write -FLUSHALL ~app:* 사용자 · 명령어 · 키 권한 정의
설정 CONFIG SET maxmemory 4gb / CONFIG GET save 런타임 설정 변경 / 조회
슬로우 로그 SLOWLOG GET 20 / SLOWLOG RESET 느린 명령 분석
레이턴시 LATENCY DOCTOR / LATENCY HISTORY event-loop 지연 진단 · 권고
메모리 MEMORY USAGE k / MEMORY STATS 키 별 / 전체 메모리 분석
영속성 BGSAVE / BGREWRITEAOF / LASTSAVE RDB · AOF 비동기 작업
복제 REPLICAOF vk-master 6379 / REPLICAOF NO ONE 복제 시작 / 마스터 승격
클러스터 CLUSTER NODES / CLUSTER SLOTS / CLUSTER FAILOVER 토폴로지 조회 · 페일오버
리샤딩 valkey-cli --cluster reshard host:port 슬롯 이동 · 다중 슬롯 병렬
벤치마크 valkey-benchmark -h vk -p 6379 -t set,get -n 1000000 -P 16 처리량/지연 측정
마이그레이션 MIGRATE host port key 0 5000 COPY REPLACE 키 단위 노드 간 이동
디버그 DEBUG OBJECT k / DEBUG SLEEP 5 객체 인코딩 / 지연 시뮬레이션
종료 SHUTDOWN SAVE / NOSAVE 안전 / 강제 종료

Ⅷ. Valkey 활용 방안

 Valkey 는 단순 캐시를 넘어 세션 · 큐 · 리더보드 · 실시간 분석 · 벡터 검색 · Pub/Sub · 분산 락 · AI 워크로드까지 폭넓게 활용됩니다. 2025~2026 실무에서 가장 효과적인 8가지 활용 시나리오를 정리합니다.

활용 분야 시나리오 적용 효과 대표 사례
웹 캐시 · 세션 API 응답 / 세션 스토어 DB 부하의 80~95% 를 흡수해 평균 지연을 100ms → 1ms 수준으로 낮추고, 멀티 인스턴스 환경에서 세션 일관성을 보장합니다. 카카오, 우아한형제들, 야놀자
리더보드 / 랭킹 게임 · 커머스 · 광고 입찰 ZSET 의 O(log N) 정렬을 활용해 수천만 유저의 실시간 순위를 ms 단위로 갱신·조회합니다. 라인 게임, 컬리 베스트, SK텔레콤
분산 락 / 동시성 주문 · 결제 · 재고 SET NX EX + Lua 안전 해제 패턴으로 마이크로서비스 간 중복 처리 · 더블 차징을 방지합니다. 토스, 우아한형제들, 마켓컬리
이벤트 / 큐 Streams 기반 작업 큐 경량 큐가 필요할 때 Kafka · RabbitMQ 없이 XADD/XREADGROUP 으로 컨슈머 그룹 · ACK · 재처리를 구현합니다. 네이버 광고, 11번가, 라인페이
실시간 분석 HyperLogLog · Bitmap · TopK 일일 UV · DAU · 실시간 대시보드를 수십 KB 메모리로 처리해 OLAP DB 부하를 분산합니다. 카카오 모먼트, 네이버 데이터랩
AI / RAG 벡터 검색 + 캐시 VSIM/VEMB 으로 임베딩 인덱스를 구축해 RAG 응답 캐시 · 의미 기반 추천을 단일 노드에서 통합합니다. Anthropic 파트너, OpenAI 파트너, 카카오브레인
Pub/Sub · 알림 채팅 · 푸시 · 실시간 협업 SUBSCRIBE/PSUBSCRIBE 패턴으로 수십만 동접 채널의 메시지 팬아웃을 ms 지연으로 처리합니다. 라인, 디스코드 한국 파트너, 카카오톡
피처 스토어 ML 온라인 추론 모델 입력 피처를 키-값 · 해시 형태로 저장해 추론 지연을 ms 미만으로 줄이고, 오프라인 학습-온라인 추론 일관성을 확보합니다. 쿠팡 추천, 네이버 검색, 카카오 추천

 다만 Valkey 는 모든 워크로드의 만능 키가 아니며, 다음 상황에서는 다른 기술을 고려해야 합니다.

피해야 할 상황 이유 / 한계 권장 대안
대용량 영구 저장(TB+) RAM 비용이 디스크 대비 50~100배, 메모리 한계가 비용 한계 PostgreSQL · CockroachDB · ScyllaDB
강한 일관성 트랜잭션 비동기 복제 + AOF everysec 의 1초 손실 가능성 CockroachDB · Spanner · Postgres
복잡 분석 / 조인 SQL · JOIN · 집계 함수가 약하고, 옵티마이저 부재 ClickHouse · DuckDB · Trino
대용량 메시지 브로커 Streams 도 내구성 · 순서 · 멀티테넌시는 Kafka 대비 제한적 Apache Kafka · Pulsar
풀텍스트 검색 형태소 분석 · 한국어 토크나이저 · 랭킹 함수 미흡 OpenSearch · Elasticsearch
지리 공간 고급 쿼리 GEO 명령은 기본 거리만 지원, PostGIS 수준 미달 PostGIS · MongoDB Geo
대규모 그래프 탐색 그래프 알고리즘 · Cypher 같은 질의 언어 부재 Neo4j · Memgraph
장기 시계열 보관 TimescaleDB 같은 압축 · 다운샘플링 · SQL 미지원 TimescaleDB · InfluxDB · Prometheus

 정리하면, Valkey 는 "Redis 와 100% 호환되면서도 라이선스 자유 · 멀티스레드 I/O · 벡터/JSON 내장 · 중립 거버넌스" 라는 네 가지 강점을 무기로 2024~2026년 인메모리 데이터스토어의 사실상 표준(de facto) 자리를 빠르게 차지하고 있습니다. 신규 시스템이라면 Valkey 8.x 부터 시작하고, 기존 Redis 기반 시스템도 라이선스 · 비용 · 운영 일관성을 고려해 점진적 이전을 진행한다면, 한 회사의 정책 변경에도 흔들리지 않는 견고한 인메모리 인프라를 확보할 수 있을 것입니다.



반응형