2015-10-14 7 views
7

私はthisで設定を見つけ、それだけでコマンドが指定の設定を使用すると述べました。だから私はthisのデフォルト設定を見つける。しかし、私はまだ最大のメモリを設定する方法を理解していません。 configureでこの行を追加するだけですか?Redis max memoryの設定方法は?私configureを書く方法については考えている、</p> <pre><code>./redis-server <path>/redis.conf </code></pre> <p>しかし:

maxmemory 2mb 

ちなみに、私はデフォルトメモリの量を知りたいと思います。私は2GBにメモリを設定したい、どのようにそれを行うには?

maxmemory 41943040 

をそして私はRedisの-CLIでコマンドを使用します:

その後、私は40ギガバイトにmaxmemory設定するように設定するのRedisに次の行を追加した

config get maxmemory 

それは私を見る:

127.0.0.1:6379> config get maxmemory 
1) "maxmemory" 
2) "41943040" 

しかし、キー番号が約200000の場合、私のJavaプログラムは例外をスローします。

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) 

私はそれについて考えていませんが、私は最大メモリを40GBに設定できましたか?どうやってするの?いくつかのコードを詳しく教えてください。

答えて

9

はい - メモリ制限を設定するには、.confファイルのmaxmemory行をコメント解除するだけです。デフォルトは0です。これは無制限であることを意味します(オペレーティングシステムがRAMを使い果たし、プロセスが終了するまで、常にmaxmemoryを正常な値に設定することを推奨します)。

更新:@ Eric Uldallがコメントで言及したように、CONFIG SET maxmemory <sane value>の後にCONFIG REWRITEが続きます。

+1

が、私は最大メモリ40ギガバイトを設定して「41943040 maxmemory」行を追加して設定して、バイト単位で設定したが、それは例外をスロー「OOMコマンドは許されません使用メモリ> 'maxmemory'。 " – v11

+1

maxmemoryを41943040バイトに設定しました= 40960KB = 40MB –

+2

ああ、わかります。私はテストするために "maxmemory 40GB"に変更しました。ありがとう! – v11

0

maxmemory 41943040

オプションあなたは40メガバイト

関連する問題

 関連する問題