Configuration de Redis en tant que cache
IBM Cloud® Databases for Redis prend en charge la modification de la configuration de la base de donnéesRedis, et vous pouvez l'utiliser pour configurer
Redis en tant que cache. Une fois configuré en tant que cache, Redis expulse les anciennes données au profit des nouvelles données en fonction des paramètres de cache que vous définissez. Même lorsqu'ils sont configurés en tant que cache,
les déploiements Databases for Redis effectuent tout de même un instantané de sauvegarde tous les jours. Actuellement, il n'est pas possible de désactiver les sauvegardes sur votre déploiement. Ils écrivent également des données sur disque
pour assurer la haute disponibilité. Redis s'appuie sur la copie dans un fichier .rdb
pour resynchroniser les abonnés.
Paramètres du cache
Pour configurer le cache, vous ajustez les paramètres maxmemory
et maxmemory
de votre déploiement. maxmemory
définit la taille du cache. maxmemory-policy
définit le comportement d'expulsion
lorsque la limite définie par maxmemory
est atteinte. En outre, d'autres paramètres prennent en charge les opérations de base de données et l'optimisation.
maxmemory
Par défaut, la valeur du paramètre maxmemory
correspond à 80 % de la mémoire disponible d'un noeud de données, par conséquent, votre noeud ne manquera pas de ressources système. Vous pouvez ajuster ce paramètre, mais définissez
une limite raisonnable. Sinon, vos données peuvent prendre toute la mémoire disponible et votre déploiement peut se retrouver à court de ressources.
maxmemory-policy
Règle | Comportement |
---|---|
noeviction |
Les clés ne sont pas expulsées et une erreur est renvoyée lorsque la limite définie au paramètre maxmemory est atteinte. |
allkeys-lfu |
Conserve les clés fréquemment utilisées et supprime les clés les moins fréquemment utilisées (LFU). |
volatile-lfu |
Supprime les clés les moins fréquemment utilisées avec la zone d'expiration définie sur true. |
allkeys-lru |
Expulse en premier les clés les moins utilisées récemment (LRU). |
volatile-lru |
Expulse en premier les clés les moins utilisées récemment (LRU) appartenant à l'ensemble de clés qui arrivent à expiration. |
allkeys-random |
Expulse les clés de manière aléatoire. |
volatile-random |
Expulse de manière aléatoire les clés appartenant à l'ensemble de clés qui arrivent à expiration. |
volatile-ttl |
Expulse en premier les clés qui arrivent à expiration et tente d'expulser les clés dont la durée de vie est plus courte. |
Avec une règle allkeys
, l'algorithme choisit les clés à expulser de l'ensemble de toutes les clés. Avec une règle volatile
, l'algorithme choisit d'expulser des clés ayant expirés ou ayant un ensemble Time-to-live (TTL). Dans une règle volatile
, si aucune clé ne correspond à la règle, aucune clé n'est
expulsée.
Autres paramètres
Règle | Comportement | Remarques |
---|---|---|
appendonly |
La valeur par défaut est yes . Permet d'écrire les données Redis sur le disque. |
Si vous mettez en cache des données, vous souhaitez définir cette valeur sur no . |
stop-writes-on-bgsave-error |
La valeur par défaut est yes . Redis arrête d'accepter des écritures s'il détecte un instantané de sauvegarde ayant échoué. |
Pour la mise en cache, vous pouvez affecter la valeur no à ce paramètre . |
maxmemory-samples |
Permet de régler l'algorithme LRU. La valeur par défaut est 5 . |
Algorithme LRU approximatif |
Définition d'un exemple de cache
Pour ajuster la configuration de votre déploiement, envoyez un objet JSON avec les paramètres que vous souhaitez modifier et leurs nouvelles valeurs.
Vous pouvez utiliser CONFIG SET
directement à partir d'un client Redis, mais les modifications apportées ne sont pas permanentes. Utilisez le 'Cloud Databases 'Plug-in CLI ou 'API pour modifier le fichier de configuration de votre déploiement. Pour plus d'informations, voir la page $$$Changing Your Redis Configuration.
Par exemple, la documentation Redis recommande le paramètre allkeys-lru
comme point de départ pour un cache à usage général. Il est également recommandé de conserver les valeurs par défaut des paramètres maxmemory
et
maxmemory-samples
.
Pour configurer le cache à partir de l'interface de gestion, vous pouvez procéder comme suit :
ibmcloud cdb deployment-configuration '<INSTANCE_NAME_OR_CRN>' '{"configuration":{"maxmemory-policy":"allkeys-lru", "appendonly":"no", "stop-writes-on-bgsave-error":"no"}}'
Pour mettre en place la même configuration par le biais de l'API, vous pouvez utiliser ce qui suit :
curl -X PATCH 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/configuration/schema' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"configuration":{
"maxmemory-policy":"allkeys-lru",
"appendonly":"no",
"stop-writes-on-bgsave-error":"no"
}
}'