redis__内存分配方式,以及malloc函数实现原理。

根据redis官方文档(点击打开链接),我们知道,redis在移除键值对的时候,并不会将内存返回给操作系统,这不是redis的问题,是因为redis使用了内存分配函数malloc(),之前就有了解过,malloc()在申请内存时,会优先遍历内部维护的一个空闲内存链表(有关这个可以看这个博客点击打开链接),如果找到大小匹配的内存,将内存空闲链表的空闲内存返回,否则进入系统调用,向操作系统申请内存。free()释放内存时,会将内存优先加入空闲内存链表。这就会导致随着系统的运行,可能redis会逐渐吃掉系统的全部内存,尽管实际用到的内存很少,并且下次分配不会提高进程占用的内存。但是由此产生的内存饥饿可能影响其他进程的运行,为了解决这个办法可以设置redis的配置字段maxmemory-policynoeviction
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值