Redis
 sql >> Base de données >  >> NoSQL >> Redis

définir l'expiration des valeurs Hashmap dans Redis ?

Non, vous ne pouvez pas créer de hachage avec SETEX (qui est une méthode de chaînes). Vous pouvez appeler EXPIRE sur la clé de hachage, mais cela fera expirer tout le hachage. Il n'y a pas de prise en charge pour le moment pour l'expiration des paires clé/valeur de hachage individuelles.

Mise à jour :

Si vous souhaitez définir l'expiration sur l'ensemble du hachage tout en définissant ses éléments individuels, vous pouvez y parvenir de plusieurs manières.

  1. Utilisez le pipeline. Le pipeline est un mode de fonctionnement spécial dans lequel le client Redis émet plusieurs commandes en succession rapide, sans attendre une réponse pour envoyer la suivante. Voici un exemple en ruby :

    redis.pipelined do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  2. Utilisez les opérations. Sans clés surveillées, cela est similaire au pipelining (car une transaction ne peut pas abandonner). Les commandes sont garanties de s'exécuter ensemble et de manière atomique (plusieurs pipelines peuvent s'exécuter entrelacés, les transactions sont sérialisées)

    redis.multi do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  3. Utilisez le script Lua pour implémenter votre commande HSETEX personnalisée. Il sera exécuté de manière atomique et vous n'aurez qu'à envoyer une seule commande (au lieu de 2 (pipelining) ou 4 (transaction)).