2015-10-14 23 views
7

trovo Configura in this, ha appena detto il comando per utilizzare il configure specificare:Come impostare la memoria massima di Redis?

./redis-server <path>/redis.conf 

Ma, non ho idea su come scrivere il configure. Quindi ho trovato la configurazione predefinita in this. Ma, ancora non capisco come impostare la memoria massima. È sufficiente aggiungere questa riga in configure?

maxmemory 2mb 

A proposito, voglio sapere quanto è la memoria predefinita. e voglio impostare la memoria su 2 GB, come si fa?

Poi, ho aggiunto questa linea ai Redis configurare per impostare maxmemory a 40 GB:

maxmemory 41943040 

e io uso il comando in Redis-cli:

config get maxmemory 

esso esposizione me:

Tuttavia, il mio programma java lancia l'eccezione in questo modo quando il numero chiave è circa 200000:

Exception in thread "Thread-228" redis.clients.jedis.exceptions.JedisDataException: OOM command not allowed when used memory > 'maxmemory'. 
    at redis.clients.jedis.Protocol.processError(Protocol.java:117) 
    at redis.clients.jedis.Protocol.process(Protocol.java:151) 
    at redis.clients.jedis.Protocol.read(Protocol.java:205) 
    at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:297) 
    at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:196) 
    at redis.clients.jedis.Jedis.hmset(Jedis.java:644) 
    at cn.ict.dt2redis.analyser.AbstractAnalyser.pushOne(AbstractAnalyser.java:21) 
    at cn.ict.dt2redis.analyser.BatchAbstractAnalyser.run(BatchAbstractAnalyser.java:16) 
    at java.lang.Thread.run(Thread.java:722) 

Non ne ho idea, riesco a impostare la memoria massima su 40 GB? Come farlo? per favore dammi qualche codice in dettaglio

risposta

9

Sì - per impostare il limite di memoria è sufficiente decommentare la riga maxmemory nel file .conf. Il valore predefinito è 0, che significa illimitato (fino a quando il sistema operativo esaurisce la RAM e uccide il processo - consiglio di impostare sempre maxmemory su un valore corretto).

Aggiornamento: come @Eric Uldall menzionato nei commenti, uno CONFIG SET maxmemory <sane value>, seguito da uno CONFIG REWRITE dovrebbe anche fare il trucco.

+1

ho aggiunto la linea "maxmemory 41.943.040" per impostare la memoria max 40 GB, ma gettare eccezione "comando OOM non ammessi quando si usa memoria> 'maxmemory'. " – v11

+1

Hai impostato maxmemory su 41943040 byte = 40960KB = 40 MB –

+2

Oh, capisco. Sono passato a "maxmemory 40gb" per testare. Grazie! – v11

0

maxmemory 41943040

opzione impostata in byte, in modo da impostare 40MB

Problemi correlati