Memcached内存机制

Memcached特点

  • 协议简单,基于文本行的协议
  • 基于Libevent的时间处理
  • 内置内存存储方式
  • 分布式缓存服务器(采用一致性哈希算法实现的客户端分布式,而非服务器端的分布式)

内存分配机制 - SlabAllocation

Memcached内存机制_第1张图片
Memcached内存分配
  • Linux内置的Malloc()/Free()函数是按需分配内存,释放后若没有恰好相等的内存占用,那么就会产生内存碎片。
  • SlabAllocation按预先设定的大小,将内存分割为特定长度的块,以解决内存碎片。
  • 内存被分成若干Slab,每个Slab又被分成若干Chunk,相同大小的Chunk被放在同一Slab中。

内存使用机制 - LRU(Least Recently Used)

  • 已分配的内存不回收,而是直接重新利用;
  • 优先使用已过期的内存;
  • 内存不足时采用LRU机制,将长期不用的内存分配给新的记录。

优化思路

  • 设置合理的增长因子,控制内存合理消耗;
  • 调整缓存更新机制,在快失效时更新内存。

你可能感兴趣的:(Memcached内存机制)