English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Configurazione Redis

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。

你可以通过 CONFIG 命令查看或设置配置项。

sintassi

Redis CONFIG 命令格式如下:

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

esempio online

redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"

使用 * 号获取所有配置项:

esempio online

redis 127.0.0.1:6379> CONFIG GET *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
 11) "pidfile"
 12) "/var/run/redis.pid"
 13) "maxmemory"
 14) "0"
 15) "maxmemory-samples"
 16) "3"
 17) "timeout"
 18) "0"
 19) "tcp-keepalive"
 20) "0"
 21) "auto-aof-rewrite-percentage"
 22) "100"
 23) "auto-aof-rewrite-min-size"
 24) "67108864"
 25) "hash-max-ziplist-entries"
 26) "512"
 27) "hash-max-ziplist-value"
 28) "64"
 29) "list-max-ziplist-entries"
 30) "512"
 31) "list-max-ziplist-value"
 32) "64"
 33) "set-max-intset-entries"
 34) "512"
 35) "zset-max-ziplist-entries"
 36) "128"
 37) "zset-max-ziplist-value"
 38) "64"
 39) "hll-sparse-max-bytes"
 40) "3000"
 41) "lua-time-limit"
 42) "5000"
 43) "slowlog-log-slower-than"
 44) "10000"
 45) "latency-monitor-threshold"
 46) "0"
 47) "slowlog-max-len"
 48) "128"
 49) "porta"
 50) "6379"
 51) "tcp-backlog"
 52) "511"
 53) "databases"
 54) "16"
 55) "repl-ping-slave-period"
 56) "10"
 57) "repl-timeout"
 58) "60"
 59) "repl-backlog-size"
 60) "1048576"
 61) "repl-backlog-ttl"
 62) "3600"
 63) "max clients"
 64) "4064"
 65) "periodo di supervisione"
 "0"
 "slave-priority"
 "100"
 "min-slaves-to-write"
 "0"
 "min-slaves-max-lag"
 "10"
 "hz"
 "10"
 "no-appendfsync-on-rewrite"
 "no"
 "slave-serve-stale-data"
 "yes"
 "slave-read-only"
 "yes"
 "stop-writes-on-bgsave-error"
 "yes"
 "daemonize"
 "no"
 "rdbcompression"
 "yes"
 "rdbchecksum"
 "yes"
 "activerehashing"
 "yes"
 "repl-disable-tcp-nodelay"
 "no"
 "aof-rewrite-incremental-fsync"
 "yes"
 "appendonly"
 "no"
 "dir"
 "/home/deepak/Downloads/redis-2.8.13/src"
 "maxmemory-policy"
"volatile-lru"
"appendfsync"
"everysec"
"save"
"3600 1 300 100 60 10000"
"loglevel"
"notice"
"client-output-buffer-limit"
"normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
"unixsocketperm"
"0"
"slaveof"
""
"notify-keyspace-events"
""
"bind"
""

modifica la configurazione

puoi modificare il file redis.conf o utilizzare CONFIG set comando per modificare la configurazione.

sintassi

CONFIG SET sintassi del comando di base:

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

esempio online

redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"

spiegazione dei parametri

la spiegazione delle opzioni di configurazione di redis.conf è la seguente:

numero di sequenzaopzione di configurazionespiegazione
1
daemonize no
Redis non esegue di default come processo demone, puoi modificare questa impostazione tramite questa voce di configurazione, usa yes per abilitare il demone (su Windows non è supportata la configurazione del thread demone con no)
2
pidfile /var/run/redis.pid
quando Redis esegue come processo demone, Redis scrive di default il pid nel file /var/run/redis.pid, puoi specificare pidfile per modificarlo
3
port 6379
specifica il porto di ascolto di Redis, il porto predefinito è 6379, l'autore ha spiegato nel proprio articolo perché ha scelto 6379 come porta predefinita, perché 6379 corrisponde al numero MERZ sui tasti dei telefoni, e MERZ è il nome della cantante italiana Alessia Merz
4
bind 127.0.0.1
indirizzo di host collegato
5
timeout 300
quando il client è inattivo per quanti secondi chiudi la connessione, se specificato come 0, significa disabilitare questa funzione
6
loglevel notice
specifica il livello di registrazione dei log, Redis supporta in totale quattro livelli: debug, verbose, notice, warning, predefinito è notice
7
logfile stdout
modalità di registrazione dei log, predefinita è l'output standard, se configuri Redis per eseguire come processo demone e qui configuri la modalità di registrazione dei log come output standard, allora i log verranno inviati a /dev/null
8
database 16
imposta il numero di database, il database predefinito è 0, puoi utilizzare il comando SELECT per specificare l'id del database sulla connessione
9
salva <secondi> <modifiche>

Il file di configurazione predefinito di Redis fornisce tre condizioni:

save 900 1

save 300 10

save 60 10000

Rappresentano rispettivamente 1 modifica ogni 900 secondi (15 minuti), 10 modifiche ogni 300 secondi (5 minuti) e 10000 modifiche ogni 60 secondi.

Specificare in quanto tempo, quante operazioni di aggiornamento devono essere eseguite per sincronizzare i dati con il file di dati, possono essere combinate con più condizioni
10
rdbcompression yes
Specificare se compressare i dati quando memorizzati nel database locale, il valore predefinito è yes, Redis utilizza la compressione LZF, se si desidera risparmiare tempo CPU, è possibile disattivare questa opzione, ma ciò farà diventare il file del database enorme
11
dbfilename dump.rdb
Specificare il nome del file del database locale, il valore predefinito è dump.rdb
12
dir ./
Specificare la directory di archiviazione del database locale
13
slaveof <masterip> <masterport>
Impostare l'indirizzo IP e la porta del servizio master quando questo computer è in modalità slave, durante l'avvio di Redis, eseguirà automaticamente la sincronizzazione dei dati dal master
14
masterauth <master-password>
Quando il servizio master è stato impostato con la protezione della password, la password di connessione del servizio slave al master
15
requirepass foobared
Impostare la password di connessione Redis, se è stata configurata una password di connessione, il client deve fornire la password tramite il comando AUTH <password> quando si connette a Redis, il valore predefinito è disattivato
16
 maxclients 128
Impostare il numero massimo di connessioni client contemporanee, il valore predefinito è illimitato, il numero massimo di connessioni client che Redis può aprire contemporaneamente è il numero massimo di descrittori di file che può aprire il processo Redis, se viene impostato maxclients 0, significa che non ci sono limiti. Quando il numero di connessioni client raggiunge il limite, Redis chiuderà nuove connessioni e invierà un messaggio di errore max number of clients reached al client
17
maxmemory <bytes>
Specificare il limite massimo di memoria Redis, Redis caricherà i dati in memoria durante l'avvio, una volta raggiunto il limite massimo di memoria, Redis tenterà prima di cancellare le chiavi scadute o prossime alla scadenza, dopo che questo metodo è stato trattato, se ancora raggiunge il limite massimo di memoria impostato, non sarà possibile eseguire operazioni di scrittura, ma sarà possibile eseguire operazioni di lettura. Il nuovo meccanismo vm di Redis, metterà le chiavi in memoria, i valori saranno memorizzati nella zona di swap
18
appendonly no
Specifica se registrare il log di aggiornamento dopo ogni operazione di aggiornamento, Redis scrive i dati sul disco in modo asincrono di default, se non viene attivato, potrebbe causare la perdita di dati per un periodo di tempo dopo un'interruzione di corrente. Poiché il file di sincronizzazione dei dati di Redis stesso è sincronizzato secondo le condizioni di save indicate sopra, alcuni dati esistono solo nella memoria per un periodo di tempo. Il valore predefinito è no
19
appendfilename appendonly.aof
Specifica il nome del file di log di aggiornamento, il valore predefinito è appendonly.aof
20
appendfsync everysec

Specifica le condizioni di registrazione del log di aggiornamento, ci sono 3 valori opzionali:

  • no: indica che il sistema operativo sincronizza i dati di cache con il disco

  • always: indica che dopo ogni operazione di aggiornamento venga chiamato manualmente fsync() per scrivere i dati sul disco (lento, sicuro)

  • everysec: indica che venga sincronizzato una volta al secondo (compromesso, valore predefinito)

21
vm-enabled no
Specifica se abilitare il meccanismo di memoria virtuale, il valore predefinito è no, per farla breve, il meccanismo VM memorizza i dati in pagine, Redis sposta le pagine di accesso meno frequente, ossia i dati freddi, sul disco, mentre le pagine di accesso frequente vengono automaticamente trasferite dalla memoria al disco (in un articolo successivo analizzerò in dettaglio il meccanismo VM di Redis)
22
vm-swap-file /tmp/redis.swap
Il percorso del file di memoria virtuale, il valore predefinito è /tmp/redis.swap, non può essere condiviso da più esempi di Redis
23
vm-max-memory 0
Tutti i dati superiori a vm-max-memory vengono memorizzati nella memoria virtuale, indipendentemente dalla dimensione impostata di vm-max-memory, tutti i dati degli indici sono memorizzati in memoria (i dati degli indici di Redis sono le chiavi), quindi quando vm-max-memory viene impostato a 0, tutti i valori esistono effettivamente sul disco. Il valore predefinito è 0
24
vm-page-size 32
Il file di swap di Redis è diviso in molte pagine, un oggetto può essere salvato su più pagine, ma una pagina non può essere condivisa da più oggetti, il valore di vm-page-size deve essere impostato in base alla dimensione dei dati di archiviazione, l'autore suggerisce che se si archiviano molti oggetti piccoli, la dimensione della pagina dovrebbe essere impostata su 32 o 64 bytes; se si archiviano oggetti molto grandi, si può utilizzare una pagina più grande, se non si è sicuri, utilizzare il valore predefinito
25
vm-pages 134217728
Impostare il numero di pagine nel file di swap, poiché la tabella di pagine (una rappresentazione bitmap che indica se una pagina è libera o in uso) è memorizzata nella memoria, ogni 8 pagine nel disco consuma 1byte di memoria
26
vm-max-threads 4
Impostare il numero di thread per accedere ai file di swap, è meglio non superare il numero di core del sistema, se impostato a 0, tutte le operazioni sui file di swap saranno seriali, potrebbe causare ritardi molto lunghi. Il valore predefinito è 4
27
glueoutputbuf yes
Impostare se combinare pacchetti più piccoli in un singolo pacchetto durante la risposta al client, di default è attivato
28
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
Specificare se utilizzare un algoritmo di hash speciale quando superato un determinato numero di elementi o quando il numero massimo di elementi supera un valore critico
29
activerehashing yes
Specificare se attivare il riavvio dell'hash, di default è attivato (in seguito verrà illustrato l'algoritmo di hash di Redis)
30
include /path/to/local.conf
Specificare un file di configurazione da includere, può essere utilizzato lo stesso file di configurazione tra diversi esempi Redis su uno stesso host, e allo stesso tempo ciascun esempio ha il proprio file di configurazione specifico