Redis如何回收过期数据?
大家讲道理
大家讲道理 2017-04-21 11:15:38
0
2
733

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

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

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
小葫芦

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)
Peter_Zhu

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal