recherche

Maison  >  Questions et réponses  >  le corps du texte

nosql - redis expire 疑问

使用 redis-cli 设置 mykey, 并且设置其过期时间为 40s, 然后, 我再重新设置 mykey, 这时 mykey 的值会被重置, 我不明白的是为啥 过期时间也同时重置了?如果我仅仅想重置值, 不更改过期时间有没办法?

源码:

SET mykey "Hello"

EXPIRE mykey 40

EXISTS mykey

SET mykey "Hello"

EXISTS mykey

EXISTS mykey
给我你的怀抱给我你的怀抱2793 Il y a quelques jours725

répondre à tous(2)je répondrai

  • 大家讲道理

    大家讲道理2017-04-27 09:04:48

    Allez sur le site officiel et lisez la description de l'expiration :
    C'est expliqué comme ceci :

    The timeout will only be cleared by commands that delete or overwrite the contents of the key, including DEL, SET, GETSET and all the *STORE commands. This means that all the operations that conceptually alter the value stored at the key without replacing it with a new one will leave the timeout untouched. For instance, incrementing the value of a key with INCR, pushing a new value into a list with LPUSH, or altering the field value of a hash with HSET are all operations that will leave the timeout untouched.

    Si vous utilisez DEL, SET, GETSET, la valeur stockée dans la clé sera remplacée par une nouvelle, et la commande effacera également le délai d'attente si vous ajoutez une donnée à la structure de la liste ou modifiez un champ de la liste ; hset, le délai d'attente ne sera pas effacé ; si vous souhaitez écraser la valeur via set, vous devez réinitialiser expire.

    Cliquez sur le lien

    répondre
    0
  • 怪我咯

    怪我咯2017-04-27 09:04:48

    EXPIREAT et EXPIRE réinitialiseront le délai d'expiration lors de la mise à jour de la valeur.

    Obtenez le délai d'expiration de la clé via ttl avant de le définir
    Après le réglage, définissez la valeur ttl sur le délai d'expiration

    192.168.1.9:6379> set key value
    OK
    192.168.1.9:6379> expire key 100
    (integer) 1
    192.168.1.9:6379> ttl key
    (integer) 98
    192.168.1.9:6379> set key value1
    OK
    192.168.1.9:6379> expire key 98
    (integer) 1
    192.168.1.9:6379> ttl key
    (integer) 96
    192.168.1.9:6379>

    Mais il y aura des erreurs de cette façon. Je ne sais pas si d'autres ont de meilleures méthodes.

    répondre
    0
  • Annulerrépondre