J'ai besoin d'expirer toutes les clés dans le hash redis, qui sont plus vieux que 1 mois.
Réponses
Trop de publicités?Vous le pouvez. Voici un exemple.
redis 127.0.0.1:6379> hset key f1 1
(integer) 1
redis 127.0.0.1:6379> hset key f2 2
(integer) 1
redis 127.0.0.1:6379> hvals key
1) "1"
2) "1"
3) "2"
redis 127.0.0.1:6379> expire key 10
(integer) 1
redis 127.0.0.1:6379> hvals key
1) "1"
2) "1"
3) "2"
redis 127.0.0.1:6379> hvals key
1) "1"
2) "1"
3) "2"
redis 127.0.0.1:6379> hvals key
Utilice EXPIRE o EXPIREAT commandement.
Si vous voulez faire expirer des clés spécifiques dans le hash avant 1 mois. Ceci n'est pas possible. La commande Redis expire est pour toutes les clés dans le hash. Si vous définissez une clé de hachage quotidienne, vous pouvez définir le temps de vie d'une clé.
hset key-20140325 f1 1
expire key-20140325 100
hset key-20140325 f1 2
Vous pouvez utiliser les notifications de l'espace clé de Redis en utilisant psubscribe
y "__keyevent@<DB-INDEX>__:expired"
.
Avec cela, chaque fois qu'une clé expirera, vous recevrez un message publié sur votre connexion redis.
En ce qui concerne votre question, vous créez une clé temporaire "normale" en utilisant set
avec un délai d'expiration en s/ms. Il doit correspondre au nom de la clé que vous souhaitez supprimer dans votre jeu.
Comme votre clé temporaire sera publiée sur votre connexion redis en détenant le code "__keyevent@0__:expired"
à son expiration, vous pouvez facilement supprimer votre clé de votre jeu d'origine car le message portera le nom de la clé.
Un exemple simple en pratique sur cette page : https://medium.com/@micah1powell/utilisation-redis-keyspace-notifications-pour-un-service-de-rappel-avec-node-c05047befec3
doc : https://redis.io/topics/notifications ( cherchez le drapeau xE)
Vous pouvez expirer Redis hash en toute simplicité, Par exemple, en utilisant python
import redis
conn = redis.Redis('localhost')
conn.hmset("hashed_user", {'name': 'robert', 'age': 32})
conn.expire("hashed_user", 10)
Cela fera expirer toutes les les clés pour enfants en dièse utilisateur_haché après 10 secondes
même chose que redis-cli,
127.0.0.1:6379> HMSET testt username wlc password P1pp0 age 34
OK
127.0.0.1:6379> hgetall testt
1) "username"
2) "wlc"
3) "password"
4) "P1pp0"
5) "age"
6) "34"
127.0.0.1:6379> expire testt 10
(integer) 1
127.0.0.1:6379> hgetall testt
1) "username"
2) "wlc"
3) "password"
4) "P1pp0"
5) "age"
6) "34"
après 10 secondes
127.0.0.1:6379> hgetall testt
(empty list or set)
- Réponses précédentes
- Plus de réponses