我发现配置在this http://redis.io/topics/config,它只是说使用指定配置的命令:
./redis-server <path>/redis.conf
但是,我不知道如何编写配置。所以我找到了默认配置this http://download.redis.io/redis-stable/redis.conf。但是,我仍然不明白如何设置最大内存。它只是在配置中添加这一行吗?
maxmemory 2mb
顺便问一下,我想知道默认内存是多少。我想把内存设置为2GB,怎么办?
然后,我将此行添加到 redis 配置中,将 maxmemory 设置为 40GB:
maxmemory 41943040
我在 redis-cli 中使用命令:
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)
我不知道,我是否成功将最大内存设置为 40 GB?怎么做?请给我一些详细的代码。
是的 - 要设置内存限制只需取消注释maxmemory
.conf 文件中的行。默认值为 0,这意味着无限制(直到操作系统耗尽 RAM 并终止进程 - 我建议始终将 maxmemory 设置为合理的值)。
更新:正如 @Eric Uldall 在评论中提到的,CONFIG SET maxmemory <sane value>
,后面跟着一个CONFIG REWRITE
也应该做到这一点。这将修改您的 redis.conf 以在重新启动时保留更改
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)