Referencia de comandos
Fase 1 — 23 comandos. Cada uno devuelve una respuesta en formato RESP.
Comandos de Strings
Almacena un valor de texto bajo una clave. Si la clave ya existia, la sobreescribe (salvo que se use NX o XX). Al establecer un nuevo valor, la expiracion anterior se elimina — a menos que se especifique una nueva con EX o PX.
| Opcion | Descripcion |
|---|---|
| EX N | Expira en N segundos a partir de ahora |
| PX N | Expira en N milisegundos a partir de ahora |
| NX | Solo escribe si la clave no existe (Set if Not eXists) |
| XX | Solo escribe si la clave ya existe (Set if eXists) |
> SET nombre "joel" OK > SET sesion "token123" EX 3600 OK > SET lock "p1" NX OK # no existia, se establece > SET lock "p2" NX (nil) # ya existia, NX lo impide
Devuelve el valor de tipo string asociado a la clave. Si la clave no existe, expiro o es de un tipo distinto a string, devuelve nil o un error WRONGTYPE según el caso.
> GET nombre "joel" > GET noExiste (nil)
Elimina una o varias claves de la base de datos activa. Las claves que no existen son ignoradas (no cuentan en el total eliminado).
> DEL nombre sesion contador (integer) 3 > DEL noExiste (integer) 0
Verifica si las claves existen en la base de datos activa. Si se especifica la misma clave varias veces, suma una por cada aparicion.
> EXISTS nombre (integer) 1 > EXISTS nombre nombre nombre (integer) 3 # misma clave cuenta 3 veces > EXISTS noExiste (integer) 0
Establece un tiempo de expiracion en segundos para una clave existente. Cuando el tiempo expira, la clave se elimina automaticamente. Si la clave ya tenia una expiracion, la sobreescribe.
> SET token "abc123" OK > EXPIRE token 60 (integer) 1 > EXPIRE noExiste 60 (integer) 0
Devuelve el tiempo de vida restante de una clave en segundos.
| Valor | Significado |
|---|---|
| N > 0 | Segundos restantes antes de que expire |
| -1 | La clave existe pero no tiene expiracion configurada |
| -2 | La clave no existe o ya expiro |
> TTL token (integer) 58 > TTL nombre # sin expiracion (integer) -1 > TTL fantasma # no existe (integer) -2
Incrementa en 1 el valor entero de una clave. Si la clave no existe, la inicializa en 0 antes de incrementar. Si el valor no es un entero valido, devuelve un error. Preserva la expiracion existente.
> INCR visitas (integer) 1 > INCR visitas (integer) 2 > INCR visitas (integer) 3
Decrementa en 1 el valor entero de una clave. Si la clave no existe, la inicializa en 0 antes de decrementar. Preserva la expiracion existente.
> SET inventario "10" OK > DECR inventario (integer) 9 > DECR inventario (integer) 8
Obtiene los valores de multiples claves en un solo round-trip de red. Las claves que no existen, expiraron o son de un tipo no-string devuelven nil en su posicion correspondiente.
> MSET a "uno" b "dos" c "tres" OK > MGET a b c z 1) "uno" 2) "dos" 3) "tres" 4) (nil) # "z" no existe
Almacena multiples pares clave-valor de forma atomica. Siempre tiene exito — nunca falla. Las claves existentes son sobreescritas.
> MSET usuario "joel" pais "mx" version "1" OK
Concatena un string al final del valor existente de la clave. Si la clave no existe, se crea con el valor proporcionado (equivale a SET).
> APPEND saludo "Hola" (integer) 4 > APPEND saludo ", mundo" (integer) 11 > GET saludo "Hola, mundo"
Devuelve la longitud en bytes del valor string de la clave. Si la clave no existe, devuelve 0. Si la clave es de otro tipo, devuelve un error.
> STRLEN saludo (integer) 11 > STRLEN noExiste (integer) 0
Establece el valor solo si la clave no existe (Set if Not eXists). Util para implementar bloqueos distribuidos simples o inicializaciones de una sola vez.
> SETNX mutex "proceso_1" (integer) 1 # establecido > SETNX mutex "proceso_2" (integer) 0 # ya existia, ignorado
Almacena un valor con expiracion en segundos. Es equivalente a SET clave valor EX segundos. El orden de los argumentos es: nombre de clave, tiempo, valor.
SETEX clave segundos valor — el tiempo va antes del valor.> SETEX sesion 3600 "token_abc" OK > TTL sesion (integer) 3600
Obtiene el valor de una clave y opcionalmente modifica su expiracion en la misma operacion. Sin opciones, se comporta igual que GET.
| Opcion | Descripcion |
|---|---|
| EX N | Nueva expiracion en N segundos |
| PX N | Nueva expiracion en N milisegundos |
| EXAT N | Expira en el timestamp Unix N (segundos) |
| PXAT N | Expira en el timestamp Unix N (milisegundos) |
| PERSIST | Elimina la expiracion — la clave se vuelve persistente |
> GETEX sesion EX 7200 "token_abc" # y renueva el TTL a 7200s > GETEX sesion PERSIST "token_abc" # y elimina la expiracion
Comandos de servidor
Verifica la conectividad con el servidor. Sin argumento devuelve PONG. Con argumento, devuelve el argumento como eco.
> PING PONG > PING "sigo vivo" "sigo vivo"
Devuelve el mensaje tal cual como un Bulk String. Util para pruebas de round-trip y depuracion.
> ECHO "hola mundo" "hola mundo"
Devuelve el numero de claves activas (no expiradas) en la base de datos activa de la conexion actual.
> DBSIZE (integer) 5
Elimina todas las claves de todas las bases de datos (no solo la activa). Operacion destructiva e irreversible.
> FLUSHALL OK > DBSIZE (integer) 0
Devuelve todas las claves de la base de datos activa que coincidan con el patron glob. Solo devuelve claves activas (las expiradas se filtran).
| Patron | Coincide con |
|---|---|
| * | Cualquier clave (lista todo) |
| h?llo | hallo, hello, hillo (un caracter cualquiera) |
| h*llo | hllo, heeello (cualquier número de caracteres) |
| user:* | Todas las claves que empiezan con "user:" |
> KEYS * 1) "nombre" 2) "visitas" 3) "user:42" > KEYS user:* 1) "user:42"
Devuelve el tipo de dato almacenado bajo una clave.
| Respuesta | Significado |
|---|---|
| string | Valor de texto (el unico tipo disponible en Fase 1) |
| list | Lista (disponible en Fase 2) |
| hash | Hash / mapa (disponible en Fase 3) |
| set | Conjunto (disponible en Fase 4) |
| none | La clave no existe o expiro |
> TYPE nombre string > TYPE noExiste none
Cambia el nombre de una clave. Si nuevaClave ya existe, se sobreescribe. Si clave no existe, devuelve un error.
> SET nombre "joel" OK > RENAME nombre apodo OK > GET apodo "joel" > GET nombre (nil)
Cambia la base de datos activa para la conexion actual. El rango valido es de 0 a DB_COUNT - 1 (por defecto 0–15). Cada conexion mantiene su propio indice — cambiar de base en una conexion no afecta a las demas.
velo 127.0.0.1:6380[3]>velo ...[0]> SELECT 3 OK velo ...[3]> DBSIZE (integer) 0 # base 3 esta vacia velo ...[3]> SELECT 99 (error) ERR el indice de base de datos esta fuera de rango