Files
wiki/Catalogue-Self-Hosted/apps/app-valkey.md
T
2026-06-09 18:40:21 +02:00

7.8 KiB


title: Valkey created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, database, nosql, cache, key-value, redis, bsd, c, linux-foundation] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Database, https://github.com/valkey-io/valkey]

🗄️ Valkey

Le fork open source de Redis : 100% compatible, maintenu par la Linux Foundation, licence BSD-3. Né en 2024 quand Redis a basculé en SSPL/RSALv2.

📋 Informations Générales

Champ Valeur
Site web valkey.io
GitHub valkey-io/valkey
License BSD-3-Clause
Langage C
Étoiles GitHub 26k
Dernière MAJ 2026-06-06
Catégorie cat-database

📝 Description

Valkey est un fork communautaire de Redis créé en mars 2024 sous l'égide de la Linux Foundation, en réaction au changement de licence de Redis. Quand Redis Inc. a annoncé que les versions 7.4+ de Redis passeraient sous une double licence restrictive (SSPL + RSALv2), les principaux acteurs du cloud (AWS, Google, Oracle, Ericsson) et de gros contributeurs upstream ont forké Redis 7.2 (la dernière version sous licence BSD) pour créer Valkey.

🎯 Pourquoi Valkey existe

Aspect Redis 7.4+ Valkey
Licence SSPL + RSALv2 (non-OSS) BSD-3-Clause (open source)
Gouvernance Redis Inc. (éditeur) Linux Foundation (neutre)
Compatibilité client Standard 100% drop-in : redis-cli, redis-py, ioredis, node-redis, etc.
Contributeurs Redis Inc. + communauté Meta, AWS, Google, Ericsson, Alibaba, Tencent…
Roadmap Publisher-driven Community-driven, RFC process

Pour un homelab, c'est une bonne nouvelle : on garde toutes les fonctionnalités Redis (key-value in-memory, pub/sub, streams, Lua scripting, clustering, persistence) dans une vraie licence open source et avec une gouvernance neutre.

🛠️ Fonctionnalités (héritées de Redis)

  • In-memory data store : latences sub-millisecond
  • Structures riches : strings, hashes, lists, sets, sorted sets, streams, bitmaps, hyperloglog, geospatial
  • Persistence : RDB snapshots + AOF logs
  • Réplication : master/replica, Redis Sentinel
  • Clustering : sharding natif jusqu'à 1000+ nœuds
  • Pub/Sub + Streams (Kafka-like)
  • Lua scripting côté serveur
  • Modules : RediSearch, RedisJSON, etc. (compatibles ou réécrits)
  • ACLs pour l'authentification fine
  • TLS natif
  • 100% drop-in : vous pouvez remplacer redis:7 par valkey:8 sans changer le code applicatif

🚀 Améliorations apportées par Valkey

  • Multi-threading I/O (expérimental mais déjà mergé)
  • Optimisations de performance continues
  • RFC process ouvert sur GitHub
  • Adoption rapide par les distros Linux (Debian, Fedora, Ubuntu, Alpine)

Public cible : tous ceux qui utilisent ou utiliseraient Redis pour du cache, du pub/sub, des sessions, des queues de messages. C'est désormais le choix par défaut pour le self-hosting.

🚀 Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
version: '3.8'
services:
  valkey:
    image: valkey/valkey:8
    container_name: valkey
    restart: unless-stopped
    command: >
      valkey-server
        --appendonly yes
        --maxmemory 256mb
        --maxmemory-policy allkeys-lru
        --requirepass "ChangeMe_VeryStrongPassword"
        --bind 0.0.0.0
        --protected-mode no
    ports:
      - "6379:6379"
    volumes:
      - valkey-data:/data
    labels:
      - "traefik.enable=false"  # Pas d'exposition HTTP publique, on ne l'expose PAS

volumes:
  valkey-data:

⚠️ Valkey ne se place PAS derrière Traefik : c'est un service backend, on l'expose uniquement sur le réseau Docker ou via un VPN/Tailscale. Pas de HTTPS, pas de Host header.

Option 2 : Natif (Debian/Ubuntu)

# Valkey est dans les dépôts Debian Trixie+ et Ubuntu 24.04+
sudo apt install valkey
sudo systemctl enable --now valkey-server

# Sinon, depuis les sources
git clone https://github.com/valkey-io/valkey.git
cd valkey
make -j$(nproc)
sudo make install

Option 3 : Macros Docker sans auth (usage interne)

docker run -d --name valkey \
  -p 6379:6379 \
  -v /opt/valkey:/data \
  valkey/valkey:8 \
  valkey-server --appendonly yes

⚙️ Configuration Initiale

  1. Test de connexion : docker exec -it valkey valkey-cli -a ChangeMe_VeryStrongPassword PINGPONG
  2. Sécuriser : activer --requirepass (obligatoire) et --bind sur le réseau Docker
  3. Choisir la stratégie de mémoire : maxmemory-policy allkeys-lru (cache) ou noeviction (DB)
  4. Activer la persistence : --appendonly yes (AOF, plus durable) ou RDB via save rules
  5. Monitorer : valkey-cli INFO ou app-grafana avec le connecteur prometheus-redis-exporter
  6. Sauvegarder : utiliser BGSAVE pour un snapshot ponctuel, ou valkey-cli --rdb pour copier le dump

🔄 Alternatives

Open Source

  • KeyDB — Fork de Redis (per-thread), Snap Inc.
  • DragonflyDB — Redis-compatible, plus performant, BSL
  • Redict — Fork indépendant de Redis (Codeberg), orienté pur OSS
  • Memcached — Cache distribué simple, sans persistence
  • Apache Kvrocks — Redis-like sur RocksDB, persistant
  • Garnet — Cache Microsoft, Redis-compatible, MIT

Propriétaires

  • Redis Cloud / Redis Enterprise — L'offre officielle de Redis Inc., gérée
  • Amazon ElastiCache — Redis ou Memcached managé
  • Memorystore (GCP) — Redis ou Valkey managé (GCP supporte Valkey depuis 2024)
  • Azure Cache for Redis — Redis managé
  • Upstash — Redis serverless

Comparaison

Critère Valkey 8 Redis 7.4 KeyDB Memcached
Licence BSD-3 SSPL/RSALv2 BSD-3 BSD-3
Compatible Redis (drop-in)
Multi-threading En cours (single-threaded)
Persistence AOF + RDB AOF + RDB AOF + RDB
Streams
Pub/Sub
Gouvernance Linux Foundation Redis Inc. Snap Inc. Dormant
Idéal pour Cache, sessions, pub/sub Idem (mais licence) Cache multi-threadé Cache pur, simple

Verdict : Valkey est désormais le choix par défaut pour un homelab : 100% compatible Redis, vraie licence open source, gouvernance neutre, performance au moins équivalente. Le seul cas où Redis garde un avantage est l'écosystème de modules propriétaire (RediSearch, RedisJSON) où les réécrits OSS ne sont pas encore à parité.

🔐 Sécurité

  • Authentification obligatoire : --requirepass (mot de passe) + ACLs fines (ACL SETUSER)
  • Pas d'exposition HTTP : Valkey ne doit jamais être exposé sur Internet, uniquement sur le réseau Docker ou via VPN
  • TLS : activable via --tls-port et certificats (surtout quand on doit l'ouvrir sur un réseau non sûr)
  • Backups : app-backup (restic) sur le volume valkey-data, ou BGSAVE régulier
  • bind 0.0.0.0 uniquement sur le réseau Docker privé, jamais sur 0.0.0.0 de l'hôte

📚 Ressources

Pages Liées