web-dev-qa-db-fra.com

Clé de stockage Redis sans valeur

Lorsque vous utilisez les commandes redis expire comme SETEXPTTL, il existe des scénarios dans lesquels il n'est pas nécessaire que la clé contienne une valeur, car le le temps de vivre agit comme tel.

Cependant, redis requiert que n'importe quelle clé ait une valeur.

Quelle serait la valeur la plus raisonnable à utiliser - si vous ne voulez jamais la lire?

31
RienNeVaPlu͢s

Qui a dit que vous devriez réellement stocker quoi que ce soit dans la clé redis?

Chaîne vide "" est une valeur parfaitement valide pour une clé redis, et c'est la plus courte possible:

> SET foo ""
OK
> GET foo
""
> BITCOUNT foo
(integer) 0
36
Leonid Beschastny

Je stockerais un octet de données qui pourrait également être interprété comme "véridique", comme le caractère ASCII caractère 1.

3
platforms

J'éviterais d'utiliser "". Que diriez-vous simple 0?

127.0.0.1:6379> set akey 0
OK
127.0.0.1:6379> memory usage akey
(integer) 48
127.0.0.1:6379> set akey ""
OK
127.0.0.1:6379> memory usage akey
(integer) 50
127.0.0.1:6379>
0
null

Sérialisez-vous vous-même tout ce qui va et vient de redis? Si c'est le cas, vous pouvez envisager d'utiliser une valeur sentinelle (comme une constante NONE, etc.) qui est définie sur quelque chose comme "Aucun".

0
Greg M. Krsak