64 comandos, Pub/Sub, transacciones y SCAN estable ante resize sobre un
endpoint TLS público en nyxkv.com:6380. Conecta con cualquier
cliente Redis — redis-cli, redis-py, ioredis — sin cambios.
$ redis-cli -h nyxkv.com -p 6380 --tls -a $TOKEN nyxkv.com:6380> SET usuario:1 "Alicia" OK nyxkv.com:6380> GET usuario:1 "Alicia" nyxkv.com:6380> SUBSCRIBE eventos # Otro cliente: nyxkv.com:6380> PUBLISH eventos "usuario:1 conectado" 1
Cualquier cliente Redis funciona. Siempre con TLS, siempre con token.
$ redis-cli -h nyxkv.com -p 6380 --tls -a $TOKEN nyxkv.com:6380> SET hola mundo OK
import redis r = redis.Redis(host="nyxkv.com", port=6380, ssl=True, password="$TOKEN") r.set("hola", "mundo")
import Redis from 'ioredis'; const r = new Redis({ host: 'nyxkv.com', port: 6380, tls: {}, password: process.env.TOKEN, }); await r.set('hola', 'mundo');
rdb := redis.NewClient(&redis.Options{ Addr: "nyxkv.com:6380", Password: os.Getenv("TOKEN"), TLSConfig: &tls.Config{}, }) rdb.Set(ctx, "hola", "mundo", 0)
let url = format!("rediss://:{}@nyxkv.com:6380", token); let client = redis::Client::open(url)?; let mut con = client.get_connection()?; redis::cmd("SET").arg("hola").arg("mundo").execute(&mut con);
De cero a guardar datos en menos de un minuto.
Registrate en dashboard.nyxkv.com/signup. Email y contraseña — sin tarjeta de crédito.
Abre dashboard.nyxkv.com/app/keys y haz clic en Crear token. Copialo — se muestra una sola vez.
$ redis-cli -h nyxkv.com -p 6380 --tls -a $TOKEN PING PONG $ redis-cli -h nyxkv.com -p 6380 --tls -a $TOKEN nyxkv.com:6380> SET usuario:1:nombre "Alicia" OK nyxkv.com:6380> INCR contador (integer) 1
Todo lo que buscas en un store compatible con Redis — verificado contra redis-py y redis-cli.
Un SCAN por cursor solo sirve si cumple su promesa mientras el keyspace cambia debajo. NyxKV implementa el cursor reverse-binary de Redis sobre su tabla hash Robin Hood, así que una key presente durante todo el scan aparece al menos una vez — incluso cuando las escrituras disparan resizes a mitad.
# redis-py, iterando mientras otro cliente inunda de escrituras for key in r.scan_iter(match="orig:*", count=5): seen.add(key) # 100/100 corridas con un writer concurrente forzando resizes: 0 keys perdidas
Head-to-head en la misma máquina (redis-benchmark, sin pipeline, TLS off para la comparación). La latencia está en el mismo orden de magnitud que Redis; la cola es donde se nota un runtime con GC — lo publicamos en vez de esconderlo.
| Métrica | redis-server | nyxkv | ratio |
|---|---|---|---|
| SET throughput | 97.276 rps | 59.172 rps | 0,61× |
| SET p50 | 0,263 ms | 0,415 ms | 1,58× |
| SET p99 | 0,687 ms | 1,175 ms | 1,71× |
| GET throughput | 92.937 rps | 48.263 rps | 0,52× |
| GET p50 | 0,255 ms | 0,519 ms | 2,04× |
| Memoria residente | 13,3 MB | 63,1 MB | 4,75× |
¿A dónde se va la diferencia? El hot path aloca a través de un GC conservador, que aparece como picos ocasionales de latencia de cola y un set residente más grande. Para un endpoint gratis y compatible con Redis es un trade que hacemos a propósito — y que seguimos midiendo.
Cada cuenta tiene su propio keyspace. Los tokens los emite el dashboard, no el protocolo.
# 1. Genera un token en https://dashboard.nyxkv.com/app/keys # 2. Pásalo como password a cualquier cliente Redis $ redis-cli -h nyxkv.com -p 6380 --tls -a $TOKEN nyxkv.com:6380> SET mikey "mis datos" OK # Guardado en tu namespace. Ninguna otra cuenta puede leerlo ni escribirlo.
Un snapshot en background cada segundo. Los reinicios retoman donde quedaron.
.ndb cada segundo. Ningún request se bloquea por la persistencia.Memoria drop-in para Claude Code y otros agentes, respaldada por tu token de NyxKV. Sobrevive sesiones, sincroniza entre máquinas.
# guarda tu token una vez, compila el SDK, instala el plugin $ printf '%s' "$TOKEN" > ~/.nyxkv-token && cd sdk && nyx build # después, desde tu agente: "restaura mi memoria" al empezar, "guarda mi memoria" al cerrar
No hay tier Pro. No hay tier Enterprise. El tier gratis es el producto.
Parte de un ecosistema de lenguaje auto-hospedado. Binario del daemon: ~390KB.