Opérations sur les états clé-valeur

Les Fournisseur de l'État dispose d'opérations clé-valeur pour le stockage de l'état.

Remarque : Ces exemples utilisent vcr.getInstanceState() pour les états partagés entre toutes les répliques. Pour un état par conversation, utilisez vcr.createSessionWithId(id) avec un UUID déterministe provenant du contexte de la demande (par exemple, conversation_uuid d'un rappel vocal). Ne jamais utiliser vcr.createSession() à l'échelle mondiale - voir Fournisseur d'Etat : Définition du champ d'application de la session pour plus de détails.

Fixer une valeur

En utilisant une clé, vous pouvez stocker une valeur pour la retrouver plus tard.

Signature de la méthode

set<T>(key: string, value: T)

Définition d'une valeur

const state = vcr.getInstanceState();

await state.set("obj", { "foo": bar });

Incrémenter une valeur

Si vous avez stocké un nombre entier, vous pouvez l'incrémenter d'une valeur spécifiée.

Signature de la méthode

increment<T>(key: string, count: number)

Incrémenter une valeur

await state.increment("count", 1);

Diminuer une valeur

Si vous avez stocké un nombre entier, vous pouvez le décrémenter d'un montant spécifié.

Signature de la méthode

decrement<T>(key: string, count: number)

Diminution d'une valeur

await state.decrement("count", 1);

Obtenir une valeur

À l'aide d'une clé, vous pouvez récupérer une valeur précédemment stockée.

Signature de la méthode

get<T>(key: string)

Obtenir une valeur

const object = await state.get("obj");

Expirer une valeur

À l'aide d'une clé, vous pouvez faire expirer une valeur précédemment enregistrée après un nombre de secondes spécifié.

Signature de la méthode

expire(key: string, seconds: number, option?: EXPIRE_OPTION)

Les types

expire prend en charge une série d'options (EXPIRE_OPTION) :

  • NX: Fixer l'expiration uniquement lorsque la clé n'a pas d'expiration
  • XX: Fixer l'expiration uniquement lorsque la clé a une expiration existante
  • GT: Fixer l'échéance uniquement lorsque la nouvelle échéance est supérieure à l'échéance actuelle.
  • LT: Fixer l'échéance uniquement lorsque la nouvelle échéance est inférieure à l'échéance actuelle.

Expiration d'une valeur

await state.expire("obj", 200);

Supprimer une valeur

Une touche permet d'effacer une valeur précédemment enregistrée.

Signature de la méthode

delete<T>(key: string)

Suppression d'une valeur

await state.delete("obj");