Est-il possible de faire persister seulement certaines clés sur le disque en utilisant Redis ? La meilleure solution pour cela est-elle, pour l'instant, de faire tourner des serveurs Redis séparés où un serveur peut avoir des caches à jeter et l'autre a des données plus importantes que nous avons besoin de vider sur le disque périodiquement (comme des compteurs de visites sur une page web).
Réponse
Trop de publicités?Vous pouvez définir des expirations sur un sous-ensemble de vos clés. Elles seront persistées sur le disque, mais seulement jusqu'à leur expiration. Cela peut être suffisant pour votre cas d'utilisation.
Vous pouvez ensuite utiliser la fonction redis maxmemory
y maxmemory-policy
des options de configuration pour limiter l'utilisation de la mémoire et indiquer à redis ce qu'il doit faire lorsqu'il atteint la mémoire maximale. Si vous utilisez l'option volatile-lru
o volatile-ttl
Redis ne rejettera que les clés ayant une expiration lorsqu'il manquera de mémoire, en rejetant soit la clé la moins récemment utilisée, soit la clé ayant l'expiration la plus proche (Time To Live), respectivement.
Cependant, comme indiqué, ces valeurs sont toujours stockées sur le disque jusqu'à leur expiration. Si vous vraiment Si vous voulez éviter cela, votre hypothèse est correcte et un autre serveur semble être la seule option.