Si vous avez de la mémoire virtuelle fonctionnalité activée (nouveau dans la version 2.0 ou 2.2, je pense), alors Redis commence à stocker les "pas-si-souvent utilisé pour les données sur le disque lorsque la mémoire est épuisée.
Si la mémoire virtuelle dans le Redis est désactivé, il apparaît que si le système d'exploitation de la mémoire virtuelle commence à s'habituer (c'est à dire swap), et les performances chutent énormément.
Maintenant, vous pouvez également configurer le Redis avec un maxmemory paramètre, ce qui empêche Redis d'utiliser plus de mémoire (par défaut).
Des versions plus récentes de Redis avoir diverses politiques quand maxmemory est atteint:
- volatile-lru enlever une clé parmi les
avec une expiration ensemble, en essayant de
supprimer les clés n'a pas été utilisé.
- volatile-ttl enlever une clé parmi les
avec une expiration ensemble, en essayant de
supprimer les clés avec de courts temps restant
à vivre.
- volatile random supprimer un
clé aléatoire parmi ceux avec une
expirer ensemble.
- allkeys-lru comme
volatile-lru, mais va supprimer tous les
type de clé, à la fois normal de les touches ou les touches
avec une expiration ensemble.
- allkeys-aléatoire
comme la volatilité aléatoire, mais supprimera
tous les types de touches, les deux touches normales
et les touches avec une expiration ensemble.
Si vous chercher une politique qui supprime uniquement les touches avec un EXPIRE le jeu, puis quand Redis à court de mémoire, il semble que le programme d'abandon de la fonction malloc (). C'est, si vous essayez de stocker plus de données, l'opération vient échoue lamentablement.
Quelques liens pour plus d'info (puisque vous ne devriez pas prendre mon mot pour lui):