Valkey vs Redis – 간단하고 실용적인 설명

발행: (2026년 1월 9일 오전 06:59 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Valkey vs Redis – 간단하고 실용적인 설명

Afu Tse (Chainiz)


🔑 Valkey란 무엇인가요?

ValkeyRedis오픈‑소스 포크이며, 2024년에 만들어졌고, Linux Foundation이 완전히 호환하고 지원합니다. 이는 **Redis 라이선스 변경(≥ 7.4)**에 대한 대응으로, OSI 표준에 따라 오픈 소스가 아니게 된 상황에 대한 답입니다.

👉 Valkey의 목표

  • Redis를 100 % 오픈 소스로 유지
  • Redis와 완전 호환 (명령, 프로토콜, 클라이언트)
  • 커뮤니티 중심의 중립적인 거버넌스
  • 벤더 락인 없음

실제로: Valkey는 Redis와 동일하지만, 오픈 라이선스와 커뮤니티 개발을 갖추고 있습니다.

🧠 Valkey는 무엇에 사용되나요?

  • 메모리 캐시
  • 세션 저장소
  • Pub/Sub
  • 속도 제한
  • 분산 락
  • 스트림
  • 리더보드
  • 복제
  • 영속성 (RDB / AOF)
  • Redis 클러스터

⚖️ Valkey vs Redis (빠른 비교)

특징ValkeyRedis (≥ 7.4)
라이선스✅ Open Source (BSD/Apache‑style)❌ RSAL / SSPL
거버넌스Linux FoundationRedis Inc
호환성100 % Redis네이티브
상업적 사용✅ 무료⚠️ 제한
벤더 종속성❌ 낮음⚠️ 높음
클라우드 친화적✅ 예⚠️ 제한적
K8s 지원✅ Excellent

🧾 라이선스: 핵심 포인트

오늘날 Redis

  • RSAL / SSPL 라이선스
  • OSI에서 오픈 소스로 인정되지 않음
  • SaaS 및 클라우드 제공업체에 대한 제한

Valkey

  • 진정한 오픈 소스
  • 상업적 사용에 제한 없음
  • 기업, 교육 및 정부에 이상적

그래서 AWS, Google, Oracle 및 기타 제공업체가 Valkey를 지원합니다.

🧪 Demo 1 – Valkey 로컬 Docker 사용

docker run -d --name valkey -p 6379:6379 valkey/valkey:latest

docker 실행

빠른 테스트

redis-cli ping
# PONG

redis-cli set demo "hola valkey"
redis-cli get demo
# "hola valkey"

redis-cli 출력

🧪 Demo 2 – Pub/Sub

Terminal A

redis-cli subscribe events

redis-cli subscribe

Terminal B

redis-cli publish events "mensaje desde valkey"

redis-cli publish

Resultado en Terminal A

redis-cli subscribe result

☸️ Demo 3 – Kubernetes에서 Valkey

valkey.yaml 파일을 생성합니다:

apiVersion: v1
kind: Namespace
metadata:
  name: demo
---
apiVersion: v1
kind: Service
metadata:
  name: valkey
  namespace: demo
  labels:
    app: valkey
spec:
  # Headless Service required by StatefulSet
  clusterIP: None
  selector:
    app: valkey
  ports:
    - name: redis
      port: 6379
      targetPort: 6379
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: valkey
  namespace: demo
spec:
  serviceName: valkey
  replicas: 1
  selector:
    matchLabels:
      app: valkey
  template:
    metadata:
      labels:
        app: valkey
    spec:
      containers:
        - name: valkey
          image: valkey/valkey:latest
          ports:
            - name: redis
              containerPort: 6379
          volumeMounts:
            - name: data
              mountPath: /data
          readinessProbe:
            tcpSocket:
              port: 6379
            initialDelaySeconds: 5
      volumes:
        - name: data
          emptyDir: {}

매니페스트를 적용합니다:

kubectl apply -f valkey.yaml

문서 끝.

periodSeconds: 5
livenessProbe:
  tcpSocket:
    port: 6379
  initialDelaySeconds: 15
  periodSeconds: 10
volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi

배포

kubectl apply -f valkey.yaml

포드에서 접근하기

kubectl run -it --rm vcli -n demo --image=redis:7 -- bash

연결을 확인하기 위해 ping을 실행합니다:

redis-cli -h valkey.demo.svc.cluster.local ping
PONG

Código fuente: k8s-valkey-demo

🔄 Redis에서 온 경우 코드를 변경해야 하나요?

아니오.

  • 동일한 명령어
  • 동일한 RESP 프로토콜
  • 동일한 클라이언트 (redis-cli, node-redis, ioredis 등)

이미지만 변경하면 됩니다:

image: valkey/valkey

🚀 결론

다음과 같은 것을 구축하고 있다면:

  • Kubernetes
  • SaaS
  • 클라우드 플랫폼
  • 오픈 소스 프로젝트

Valkey가 오늘 권장되는 선택입니다.

Back to Blog

관련 글

더 보기 »

안녕, 뉴비 여기요.

안녕! 나는 다시 S.T.E.M. 분야로 돌아가고 있어. 에너지 시스템, 과학, 기술, 공학, 그리고 수학을 배우는 것을 즐겨. 내가 진행하고 있는 프로젝트 중 하나는...