Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management 是否需要重新启动redis以释放内存?_Memory Management_Redis - Fatal编程技术网

Memory management 是否需要重新启动redis以释放内存?

Memory management 是否需要重新启动redis以释放内存?,memory-management,redis,Memory Management,Redis,我最近遇到了一个问题,op询问redis在哪些场景中释放内存。似乎他们被建议硬启动是一种潜在的方式,但这在redis的案例中还没有经过测试。有人能告诉我这是否有效吗 我有一个实时环境,我不想重新启动redis服务器,但它的内存足迹现在正在削弱,我正处于服务器迁移的边缘。所以,对我来说,尽可能多地去除浮肿是很重要的(而且还有一吨浮肿) 我不知道你所说的“膨胀”是什么意思,但是附加服务器的INFO ALL输出可能会有所帮助 默认情况下,Redis使用jemalloc作为内存分配器。在Redis释放R

我最近遇到了一个问题,op询问redis在哪些场景中释放内存。似乎他们被建议硬启动是一种潜在的方式,但这在redis的案例中还没有经过测试。有人能告诉我这是否有效吗


我有一个实时环境,我不想重新启动redis服务器,但它的内存足迹现在正在削弱,我正处于服务器迁移的边缘。所以,对我来说,尽可能多地去除浮肿是很重要的(而且还有一吨浮肿)

我不知道你所说的“膨胀”是什么意思,但是附加服务器的
INFO ALL
输出可能会有所帮助

默认情况下,Redis使用jemalloc作为内存分配器。在Redis释放RAM后,分配器负责实际释放RAM供操作系统回收。Redis v4及更高版本包括强制分配器清除释放的RAM的功能(
内存清除
,请参阅)

不管清除,还有内存碎片的问题。虽然v4具有实验性的主动碎片整理功能,但重启是“修复”以前版本中的问题的方法


为了减轻重启和停机时间,请使用Redis“复制”创建一个从机,并在重启原始主机之前将应用程序故障切换到该从机。

没有什么太神秘的,我说的“膨胀”只是指我有一堆不再使用的密钥。啊-或者更严格一点w。管家和/或使用TTL:)从未说过更真实的话