Configurazione di Redis come cache
IBM Cloud® Databases for Redis supporta la modifica della configurazione del databaseRedis e puoi utilizzarla per configurare Redis come una cache. Quando è configurato come cache, Redis evita i vecchi dati a favore dei nuovi in base alle impostazioni della cache definite. Anche quando sono configurate come cache, le distribuzioni Databases for
Redis eseguono ancora un'istantanea di backup giornaliera. Attualmente non è possibile disabilitare i backup sulla propria distribuzione. Scrivono anche alcuni dati su disco per l'alta disponibilità. Redis si basa sulla copia su un file .rdb
per risincronizzare i follower.
Impostazioni della cache
Per configurare la cache, regolare le impostazioni maxmemory
e maxmemory
della propria distribuzione. maxmemory
definisce la dimensione della cache. maxmemory-policy
definisce il comportamento
di eliminazione quando viene raggiunto il limite maxmemory
. Inoltre, altre impostazioni si occupano delle operazioni e dell'ottimizzazione del database.
maxmemory
Per default, maxmemory
è impostato sull'80% della memoria disponibile di un nodo di dati, quindi il nodo non esaurisce le risorse di sistema. È possibile regolare questa impostazione, ma impostare un limite ragionevole. Altrimenti,
i tuoi dati possono prendere tutta la memoria disponibile e la tua distribuzione esaurisce le risorse.
maxmemory-policy
Politica | Modalità di funzionamento |
---|---|
noeviction |
Non elimina le chiavi e restituisce un errore quando viene raggiunto il limite maxmemory . |
allkeys-lfu |
Conserva le chiavi utilizzate più di frequente e rimuove le chiavi LFU (least Frequently used). |
volatile-lfu |
Rimuove le chiavi utilizzate meno frequentemente con il campo di scadenza impostato su true. |
allkeys-lru |
Evoca prima le chiavi LRU (less recently used). |
volatile-lru |
Richiama le chiavi LRU (less recently used) dalla serie di chiavi che scadono per prime. |
allkeys-random |
Chiavi di sgombero casuali. |
volatile-random |
Evoca le chiavi in modo casuale dalla serie di chiavi che scadono. |
volatile-ttl |
Elimina le chiavi che scadono e tenta di eliminare le chiavi con un TTL (time to live) più breve. |
Con una politica allkeys
, l'algoritmo sceglie quali chiavi eliminare dalla serie di tutte le chiavi. Con una politica volatile
, l'algoritmo sceglie di eliminare le chiavi che sono scadute o che hanno un TTL(time - to - live) impostato. In una politica volatile
, se nessuna chiave corrisponde alla politica,
non viene annullata alcuna chiave.
Altre impostazioni
Politica | Modalità di funzionamento | Note |
---|---|---|
appendonly |
Valore predefinito, yes . Abilita la scrittura dei dati Redis su disco. |
Se si stanno memorizzando nella cache i dati, si desidera impostare questo valore su no . |
stop-writes-on-bgsave-error |
Valore predefinito, yes . Redis smette di accettare le scritture se rileva un'istantanea di backup non riuscita. |
Per la memorizzazione nella cache, è possibile impostare su no . |
maxmemory-samples |
Regola l'algoritmo LRU, valore predefinito 5 . |
Algoritmo LRU approssimato |
Impostazione di una cache di esempio
Per modificare la configurazione della distribuzione, inviare un oggetto JSON con le impostazioni che si desidera modificare e i relativi nuovi valori.
È possibile utilizzare CONFIG SET
direttamente da un client client Redis, ma le modifiche apportate non sono permanenti. Usare 'Cloud Databases 'Plug-in CLI o 'API per modificare il file di configurazione dell'installazione client. Ulteriori informazioni si trovano in Modifica della tua configurazione di Redis.
Ad esempio, la documentazione Redis consiglia l'impostazione allkeys-lru
come buon punto di partenza per una cache di uso generale. È inoltre possibile lasciare maxmemory
e maxmemory-samples
ai valori predefiniti.
Per configurare la cache dalla CLI, si può utilizzare la seguente procedura:
ibmcloud cdb deployment-configuration '<INSTANCE_NAME_OR_CRN>' '{"configuration":{"maxmemory-policy":"allkeys-lru", "appendonly":"no", "stop-writes-on-bgsave-error":"no"}}'
Per impostare la stessa configurazione attraverso l'API, si può usare quanto segue:
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"
}
}'