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

187 lines
7.8 KiB
Markdown

---
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](https://valkey.io/) |
| **GitHub** | [valkey-io/valkey](https://github.com/valkey-io/valkey) |
| **License** | BSD-3-Clause |
| **Langage** | C |
| **Étoiles GitHub** | 26k ⭐ |
| **Dernière MAJ** | 2026-06-06 |
| **Catégorie** | [[cat-database\|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é)
```yaml
# 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)
```bash
# 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)
```bash
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 PING``PONG`
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
- [Site officiel](https://valkey.io/)
- [GitHub valkey-io/valkey](https://github.com/valkey-io/valkey)
- [Documentation](https://valkey.io/docs/)
- [Annonce Linux Foundation](https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community)
## Pages Liées
- [[cat-database]] — Catégorie Database
- [[app-postgres]] — BDD relationnelle classique
- [[app-backup]] (restic) — Sauvegardes
- [[recettes-docker-compose]] — Recettes
- [[securisation-home-lab]] — Bonnes pratiques
- [[glossaire-homelab]] — Glossaire