• 全部
  • Java SE
  • Java EE
  • J2ME
  • IDE工具
  • 求助
  • 内推招聘
  • 问答

Redis 内存有 10G,当你删除了 1GB 的 key 后,再去观察内存,发现内存变化不会太大

伟洪winnie 2020-08-06 10:01:56

如果当前 Redis 内存有 10G,当你删除了 1GB 的 key 后,再去观察内存,你会发现
内存变化不会太大。原因是操作系统回收内存是以页为单位,如果这个页上只要有一个 key
还在使用,那么它就不能被回收。Redis 虽然删除了 1GB 的 key,但是这些 key 分散到了
很多页面中,每个页面都还有其它 key 存在,这就导致了内存不会立即被回收。


那要怎么才能立即回收这1G内存?
...全文
6547 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepSayingNo 2020-08-14
这个不需要你管吧,即使这1G内存没被回收,下次向REDIS存数据,可以利用这1G内存
回复
大隐藏于寺 2020-08-13
引用 楼主 伟洪winnie 的回复:

如果当前 Redis 内存有 10G,当你删除了 1GB 的 key 后,再去观察内存,你会发现
内存变化不会太大。原因是操作系统回收内存是以页为单位,如果这个页上只要有一个 key
还在使用,那么它就不能被回收。Redis 虽然删除了 1GB 的 key,但是这些 key 分散到了
很多页面中,每个页面都还有其它 key 存在,这就导致了内存不会立即被回收。
那要怎么才能立即回收这1G内存?
你可以使用memory purge试下,不过这个命令需要redis使用的jemalloc内存分配器
回复
oh_Maxy 版主 2020-08-13
不用管,你新增的key会占用释放的位置。
回复
相关推荐
发帖
Java
创建于2007-09-28

4.7w+

社区成员

Java相关技术讨论
申请成为版主
帖子事件
创建了帖子
2020-08-06 10:01
社区公告
暂无公告