Vai al contenuto principale
Versione: 3.0.0-alpha (Diátaxis)

Riferimento API Redis

Questo riferimento descrive in dettaglio l'utilizzo di Redis su Hikube, evidenziando la sua rapidità e versatilita come data store in-memory e sistema di cache distribuita. Il servizio gestito semplifica il deployment e la gestione dei cluster Redis, garantendo alta disponibilità, bassa latenza e prestazioni ottimali per le vostre applicazioni.

Il servizio si basa sull'operatore Spotahome Redis Operator, che assicura l'orchestrazione, la replica e la supervisione dei cluster Redis.


Struttura di Base

Risorsa Redis

Esempio di configurazione YAML

apiVersion: apps.cozystack.io/v1alpha1
kind: Redis
metadata:
name: example
spec:

Parametri

Parametri Comuni

ParametroTipoDescrizioneValore predefinitoRichiesto
replicasintNumero di repliche Redis (istanze nel cluster)2Si
resourcesobjectConfigurazione CPU e memoria esplicita di ogni replica Redis. Se vuoto, viene applicato resourcesPreset{}No
resources.cpuquantityCPU disponibile per replicanullNo
resources.memoryquantityRAM disponibile per replicanullNo
resourcesPresetstringProfilo di risorse predefinito (nano, micro, small, medium, large, xlarge, 2xlarge)"nano"Si
sizequantityDimensione del volume persistente (PVC) per i dati1GiSi
storageClassstringClasse di archiviazione utilizzata""No
externalboolAttivare l'accesso esterno al cluster (LoadBalancer)falseNo
authEnabledboolAttivare l'autenticazione tramite password (memorizzata in un Secret Kubernetes)trueNo

Esempio di configurazione YAML

redis.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Redis
metadata:
name: example
spec:
# Numero di repliche Redis (alta disponibilità se >1)
replicas: 3

# Risorse allocate per istanza
resources:
cpu: 1000m # 1 vCPU
memory: 1Gi # 1 GiB di RAM

# Dimensione del disco persistente per ogni istanza
size: 2Gi
storageClass: replicated

# Attivare l'autenticazione Redis
# Se true, una password viene generata automaticamente
authEnabled: true

# Esporre il servizio Redis all'esterno del cluster
external: true

Parametri specifici dell'applicazione

ParametroTipoDescrizioneValore predefinitoRichiesto
authEnabledboolAttiva la generazione di una password (memorizzata in un Secret Kubernetes)trueNo

Esempio di configurazione YAML

redis.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Redis
metadata:
name: example
spec:
replicas: 3
resources:
cpu: 1000m
memory: 1Gi
size: 2Gi
storageClass: replicated
# Attivare l'autenticazione Redis
# Se true, una password viene generata automaticamente
authEnabled: false
# Esporre il servizio Redis all'esterno del cluster
external: false

resources e resourcesPreset

Il campo resources permette di definire esplicitamente la configurazione CPU e memoria di ogni replica Redis. Se questo campo e lasciato vuoto, viene utilizzato il valore del parametro resourcesPreset.

Esempio di configurazione YAML

redis.yaml
resources:
cpu: 4000m
memory: 4Gi

⚠️ Attenzione: se resources e definito, il valore di resourcesPreset viene ignorato.

Preset nameCPUMemoria
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Buone Pratiche
  • authEnabled: true: attivate sempre l'autenticazione in produzione per proteggere l'accesso ai vostri dati Redis
  • 3 repliche minimo in produzione per garantire l'alta disponibilità con Redis Sentinel
  • Storage replicato: usate storageClass: replicated per proteggere i dati contro la perdita di un nodo fisico
  • Dimensionamento memoria: la memoria allocata (resources.memory) deve essere sufficiente a contenere l'intero dataset Redis
Attenzione
  • Le cancellazioni sono irreversibili: la cancellazione di una risorsa Redis comporta la perdita definitiva dei dati se nessuna persistenza esterna è configurata
  • resources vs resourcesPreset: se resources e definito, resourcesPreset viene completamente ignorato
  • Accesso esterno: attivare external: true espone Redis su Internet — assicuratevi che authEnabled: true sia configurato