• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

redis补充说明之对象

redis 海叔叔 3小时前 2次浏览 已收录 0个评论

今天来聊聊redis当中的对象
感觉需要补充的有三部分:

1. 内存回收

由于C语言并不具备自动内存回收功能,所以redis在自己的对象系统中构建了一个引用计数来实现内存回收,通过这一机制,程序可以通过跟踪对象的引用计数信息,在适当的时候自动释放对象并进行内存回收。当新建一个对象时,引用计数的值会初始化为1;当对象被一个新程序使用时,引用计数+1, 当对象不再被一个程序使用时,它的引用计数-1;当对象的引用计数值变为0时,对象所占的内存会被释放

2. 对象共享

除了用于实现引用计数内存回收机制之外,对象的引用计数属性还带有对象共享的作用。在redis中,让多个键共享同一个值的对象需要执行以下两个步骤:1)将数据库键的值指针指向一个现有的对象;2)将被共享的值对象的引用计数+1;

3. 对象的空转时长

redisObject结构当中还包含一个属性叫做lru,该属性记录了对象最后一次被命令程序访问的时间,程序可以根据当前时间减掉这个值来获取这个对象的空转时长,这样的话,如果需要内存回收之类的工作,就可以利用这个特征来搞点事情了


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址