超过Redis maxmemory
我正在我的本地机器上试验redis 3.0逐出策略-我想限制最大内存,这样redis消耗的内存不能超过20 MB 我的配置:超过Redis maxmemory,redis,Redis,我正在我的本地机器上试验redis 3.0逐出策略-我想限制最大内存,这样redis消耗的内存不能超过20 MB 我的配置: loglevel debug maxmemory 20mb maxmemory-policy noeviction 从这里,我运行redis服务器,配置后是 redis基准-q-n100000-c50-p12 在内存中存储一串密钥。这使得我的mac上redis的内存使用量达到21MB,超出了指定的限制1 MB。如果我再次运行它,将消耗更多 根据协议,这应该由我的maxm
loglevel debug
maxmemory 20mb
maxmemory-policy noeviction
从这里,我运行redis服务器
,配置后是
redis基准-q-n100000-c50-p12
在内存中存储一串密钥。这使得我的mac上redis的内存使用量达到21MB,超出了指定的限制1 MB。如果我再次运行它,将消耗更多
根据协议,这应该由我的maxmemory指令和逐出策略控制,在随后的写操作中会抛出一个错误,但我发现情况并非如此
为什么redis服务器消耗的内存超过分配的内存 Redis
maxmemory
策略控制用户数据内存的使用(如注释中的sas)。但这里有一些更复杂的内存消耗情况:
- 取决于操作系统李>
- 取决于CPU和使用的编译器(读作使用了Redis x86/x64)
- 取决于使用的分配器(在Redis中默认)
maxmemory
——操作系统中实际使用的内存可能会多得多,Redis对此无能为力
p、 请不要把它当作广告。你的问题离我很近。这里是关于Redis的真实内存使用情况(它们都是俄语的,很抱歉。我计划在这个新年周末用英语翻译它们。之后更新链接。翻译部分) 操作系统的内存使用情况与用户数据占用的内存不同-使用
INFO
使用redis cli INFO | grep memory
并查看度量使用的内存(人类)
,我也超出了限制,但无法产生任何错误。我希望为该政策设置翻译版本和伟大的答案,这不应该仍然抛出错误吗?noeviction是默认值。noeviction意味着当达到内存限制时,Redis将返回错误,并且客户端尝试执行可能导致使用更多内存的命令(大多数写命令,但DEL和一些其他异常)。@misterion Yep,看到了,评论过,将在今年的Redis Watch最新版本中出现。我也很喜欢这个博客的名字,我已经订阅了它,所以我不会错过任何东西:)