Redis是否使用缓存?

时间:2019-02-19 11:05:01

标签: redis

120天后,我重新启动了Redis服务器。

重启前,内存使用量为29.5GB

重新启动后,内存使用量为27.5GB

那么,减少2GB的空间如何?

ram像本文https://redis.io/topics/memory-optimization

中的免费内存
  

当按键被按下时,Redis不会总是向操作系统释放(返回)内存   删除。这与Redis没什么特别的,但是大多数   malloc()实现起作用。例如,如果您填充一个实例   包含5GB的数据,然后删除相当于2GB的数据,   居民集大小(也称为RSS),即   进程消耗的内存页面)可能仍然存在   5GB,即使Redis声称用户内存约为3GB。这个   之所以发生,是因为基础分配器无法轻松释放   记忆。例如,通常大多数已删除的密钥都分配在   与仍存在的其他键相同的页面。上一点   表示您需要根据峰值内存来配置内存   用法。如果您的工作量有时需要10GB,即使大多数   5GB可以做到的次数中,您需要准备10GB。

     

然而,分配器很聪明,能够重用免费的   内存,因此在您释放5GB数据集中的2GB后,   再次添加更多密钥,您将看到RSS(居民集大小)保持不变   稳定,并且不会增长更多,因为您最多可以添加2GB的其他密钥。   分配器基本上是在尝试重用2GB的内存   以前(逻辑上)已释放。

     

由于所有这些,当您使用时碎片率不可靠   的内存使用量在峰值处远远大于当前使用的   记忆。碎片计算为内存量   当前正在使用(作为由...执行的所有分配的总和   Redis)除以实际使用的物理内存(RSS值)。   由于RSS反映了峰值内存,因此(实际上)使用了   由于释放了许多键/值,因此内存不足,但是RSS是   高,则mem_used / RSS的比例将非常高。

还是我的Redis服务器使用的缓存的可用内存?

Redis是否使用缓存?缓存缓存?

谢谢!

0 个答案:

没有答案