Q8: 我们都知道Redis使用的是C语言来编写的,但是C语言并不支持垃圾回收机制,你能讲一下Redis的内存回收机制是怎样实现的吗? A: 因为Redis中存取数据的都是对象,所以开发者在RedisObject里预留了一个字段叫refcount,类似于Java的引用计数法判断垃圾。在创建对象时,将其初始化为1,当遇到被程序使用时,会新增1,不被使用时会减小1,而当减小为0时,则进行回收,其生命周期相较于Java的垃圾回收机制简单不少,主要分为“创建对象”、“操作对象”、“释放对象”。另外,鉴于Redis的内存比较宝贵,因此还引入了另外一种机制(共享内存),类似于JVM中的StringPool,用于节省内存,防止创建**过多的相同数值的字符串**。
点赞 评论

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
牛客网
牛客企业服务