Saltar al contenido principal

Claves y valores

Clustron Zaris almacena los datos como pares clave-valor: una clave que identifica una entrada y un valor que contiene sus datos. Esta es la forma más directa de trabajar con el sistema, y cada característica de nivel superior — TTL, leases, coordinación — se construye encima de ella.

Claves​

Una clave es un identificador único para un valor. Las claves son cadenas, y cada clave pertenece a exactamente un almacén. Dentro de un almacén una clave es única: escribir en una clave que ya existe reemplaza su valor en lugar de crear una segunda entrada.

Las claves normalmente codifican estructura en la propia cadena, usando un separador para agrupar entradas relacionadas:

  • "user:1001"
  • "order:5002"
  • "session:abc123"

Valores​

Un valor es el dato asociado a una clave. Un valor puede ser cualquier tipo serializable — Clustron Zaris lo serializa por ti, así que almacenas y recuperas objetos tipados directamente en lugar de gestionar bytes tú mismo. Esto significa que puedes almacenar un escalar sencillo o un objeto completo con la misma llamada:

await client.PutAsync("user:1001", new User { Name = "Ali", Age = 30 });

await client.PutAsync("count", 42);

Como la recuperación es tipada, especificas el tipo que esperas cuando lees un valor de vuelta, y Clustron Zaris deserializa a él.

Operaciones básicas​

Las tres operaciones centrales son put, get y delete. Put escribe un valor bajo una clave, get lo lee de vuelta, y delete lo elimina:

await client.PutAsync("key", "value");

var result = await client.GetAsync<string>("key");

await client.DeleteAsync("key");

Estas operaciones se comportan de forma idéntica en los modos en proceso y distribuido. El mismo código funciona tanto si el almacén se ejecuta dentro de tu proceso como a través de un clúster, que es lo que te permite desarrollar localmente y desplegar de forma distribuida sin cambios.

Diseñar claves​

Cómo nombras las claves determina con qué facilidad puedes encontrar, agrupar y razonar sobre tus datos más adelante. Dos hábitos ayudan mucho.

Usa namespacing — un prefijo y un separador consistentes — para agrupar entradas relacionadas, de modo que user:1001, user:1002 y order:5001 se agrupen de forma natural por tipo. Esta estructura es también sobre lo que operan las características basadas en prefijos, como watch y las consultas por prefijo, así que un buen esquema da frutos más allá de la legibilidad.

Mantén las claves predecibles. Derívalas de identificadores estables con un patrón consistente, y evita nombres aleatorios o ambiguos, de modo que cualquier parte de tu sistema pueda construir la clave de un dato sin tener que buscarla.

Las claves están acotadas a un almacén​

Una clave vive dentro del almacén que la contiene. Las claves de un almacén no son visibles en otro, y cada almacén mantiene su propio espacio de claves independiente. Por eso el almacén es el límite de tus datos: dos almacenes pueden usar el mismo nombre de clave para valores completamente ajenos sin ninguna colisión.

Las claves son más que almacenamiento​

Una clave en Clustron Zaris no es solo una ranura en un diccionario. Las mismas claves también pueden participar en las características de ciclo de vida y coordinación del sistema:

  • TTL, para que una clave expire automáticamente tras una duración establecida.
  • Leases, para que una clave exista solo mientras un propietario mantiene activo su lease.
  • Primitivas de coordinación — locks, contadores y watch — que se construyen sobre las claves.

Como todas estas características operan sobre las mismas claves, el valor que almacenas y el comportamiento a su alrededor permanecen en un solo lugar en vez de repartidos entre sistemas separados.

Próximos pasos​