因为 C 语言并不具备自动的内存回收功能, 所以 Redis 在自己的对象系统中构建了一个引用计数(reference counting)技术实现的内存回收机制, 通过这一机制, 程序可以通过跟踪对象的引用计数信息, 在适当的时候自动释放对象并进行内存回收。
每个对象的引用计数信息由 redisObject
结构的 refcount
属性记录:
typedef struct redisObject { // ... // 引用计数 int refcount; // ... } robj;
对象的引用计数信息会随着对象的使用状态而不断变化:
1
;0
时, 对象所占用的内存会被释放。表 8-12 列出了修改对象引用计数的 API , 这些 API 分别用于增加、减少、重置对象的引用计数。
原文:https://www.cnblogs.com/tracydzf/p/14178447.html