您的当前位置:首页正文

Redis--内存回收(引用计数法)

来源:华佗健康网
Redis--内存回收(引⽤计数法)

http://redisbook.com/preview/object/refcount.html

因为 C 语⾔并不具备⾃动的内存回收功能, 所以 Redis 在⾃⼰的对象系统中构建了⼀个引⽤计数()技术实现的内存回收机制, 通过这⼀机制, 程序可以通过跟踪对象的引⽤计数信息, 在适当的时候⾃动释放对象并进⾏内存回收。每个对象的引⽤计数信息由 redisObject 结构的 refcount 属性记录:

typedef struct redisObject { // ... // 引⽤计数 int refcount; // ...} robj;

对象的引⽤计数信息会随着对象的使⽤状态⽽不断变化:

在创建⼀个新对象时, 引⽤计数的值会被初始化为 1 ;当对象被⼀个新程序使⽤时, 它的引⽤计数值会被增⼀;当对象不再被⼀个程序使⽤时, 它的引⽤计数值会被减⼀;当对象的引⽤计数值变为 0 时, 对象所占⽤的内存会被释放。

因篇幅问题不能全部显示,请点此查看更多更全内容