recherche

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

Redis如何回收过期数据?

服务器经常会用到redis作为缓存,有很多数据都是临时set以下,可能用过之后很久都不会再用到了(比如暂存session)那么就有几个问题了

  1. redis会自己回收清理不用的数据吗?
  2. 如果能,如何配置?
  3. 如果不能,如何防止数据累加后大量占用存储空间的问题?
大家讲道理大家讲道理2800 Il y a quelques jours732

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

  • 高洛峰

    高洛峰2017-04-21 11:17:38

    Redis stocke toutes les données en permanence dans la mémoire par défaut Lorsque vous devez conserver les données (enregistrer sur le disque) ou supprimer automatiquement les clés expirées, vous devez utiliser des commandes ou des configurations supplémentaires pour terminer ; Si vous devez utiliser Redis pour répondre aux exigences de votre entreprise (telles que le cache), vous devez alors suivre les règles de conception de Redis

     ;

    Quant à la question que vous avez mentionnée plus tard : Même si j'ajoute expire à chacun de mes éléments mysophobes, pouvez-vous garantir que d'autres personnes impliquées dans le développement multijoueur ajoutent également expire ? Si quelqu'un ne l'a pas, ces données seront toujours enregistrées

    Voici ce que je pense : généralement, la logique métier est encapsulée dans une interface API. Par exemple, l'interface de session pour les scénarios de connexion peut être : void addLoginSession(string data, int timeout), et les autres ne se soucient pas de quoi. est utilisé ici lorsqu'ils l'appellent. Qu'il s'agisse de redis ou de memcache, tous les détails doivent être digérés uniquement par les concepteurs d'API

    ;

    Au fait, comment Redis nettoie-t-il les clés expirées dans la base de données ? Il est divisé en deux types :

    1. Suppression paresseuse : lorsque vous utilisez une clé (telle que get name), redis vérifiera d'abord si la clé est associée à un délai d'attente. Si tel est le cas, vérifiez si elle a expiré. reviendra vide, sinon il renverra la valeur correspondante
    2. Suppression programmée : Il y a un événement temporel dans redis, qui nettoiera les clés expirées dans la base de données (redis limitera le temps occupé par cette opération pour éviter de bloquer les requêtes des clients)

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-21 11:17:38

    Vous pouvez utiliser la commande expire pour définir le délai d'expiration. Il existe plusieurs autres commandes qui peuvent également être utilisées pour définir le délai d'expiration. Veuillez vous référer à la documentation pour plus de détails.

    répondre
    0
  • Annulerrépondre